Text 使用ADODB连接,使用vba从两个不同服务器上的两个不同数据库左连接两个表

Text 使用ADODB连接,使用vba从两个不同服务器上的两个不同数据库左连接两个表,text,excel,database-connection,vba,Text,Excel,Database Connection,Vba,我有一个数据库,包含我可以连接和查询的所有订单。此外,我还有一个文本文件,其中包含我可以连接和查询的最后一个数据库查询的顺序。我需要能够在VBA中左键连接这两个。我对数据库没有任何问题,因为它在连接字符串中,但我似乎无法将文本文件路径传递到SQL字符串,而不会获得无效的对象错误。我对SQL和连接文件是新手。任何帮助都将不胜感激 我正在努力做到以下几点: Sub Comp2TablesFrom2Databases() Dim rs As ADODB.Recordset Dim strSQL As

我有一个数据库,包含我可以连接和查询的所有订单。此外,我还有一个文本文件,其中包含我可以连接和查询的最后一个数据库查询的顺序。我需要能够在VBA中左键连接这两个。我对数据库没有任何问题,因为它在连接字符串中,但我似乎无法将文本文件路径传递到SQL字符串,而不会获得无效的对象错误。我对SQL和连接文件是新手。任何帮助都将不胜感激

我正在努力做到以下几点:

Sub Comp2TablesFrom2Databases()

Dim rs As ADODB.Recordset
Dim strSQL As String, strCon As String

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
strCon = "Connection string to database" 'works fine in test code that only connects to the database

strSQL = "SELECT * " _
& "FROM Database LEFT JOIN [TextFilePath] " _
& "ON Database.[Order No] = [TextFilePath].[Order No] " _
& "WHERE [TextFilePath].[Order No] IS NULL;"

rs.Open strSQL, strCon

'do stuff

rs.Close
Set rs = Nothing

End Sub

您忘记了在“”前面有空格

试试这个

strSQL = "SELECT * " _
& "FROM Database LEFT JOIN [TextFilePath] " _
& "ON Database.[Order No] = [TextFilePath].[Order No] " _
& "WHERE [TextFilePath].[Order No] IS NULL;"
因此,您的查询如下所示:

SELECT * FROM Database LEFT JOIN [TextFilePath] ON Database.[Order No] = [TextFilePath].[Order No]WHERE [TextFilePath].[Order No] IS NULL;
因此,
[Order No]中的
应该会出错

对文本文件的查询示例

我认为你应该添加路径


我的快速解决方案是创建一个包含两个工作表的辅助XL文件。一个工作表查询文本文件,另一个查询数据库。每次打开辅助XL文件时都会运行查询。我在主XL文件中的两个辅助工作表上有一个左连接查询,我需要筛选数据。这是一项工作-我想我遇到的问题是Jet OLEDB提供程序不支持查询SQL Server,SQL OLEDB不支持查询文本文件。如果有人知道同时支持这两种功能的提供程序,我将不胜感激。

感谢您的快速回复。空间不足是因为我删减了SQL语句用于发布。真正的问题是,我找不到SQL字符串在查询一台服务器上的数据库和本地驱动器上的文本文件时应该查找的内容。两者我都可以单独查询,但我需要能够进行左联接。我以前从未在文本文件上进行过左联接。如何单独执行此操作?数据库是表的名称吗?使用ADODB con连接时,我已将连接字符串设置为Provider=Microsoft.Jet.OLEDB.4.0;数据源=包含文本文件的文件夹的路径\;扩展属性=“文本”;HDR=是;FMT=分隔(,)“”;持久安全信息=False“和“SELECT*FROM TextFileName.txt”将文本文件的名称传递给SQL会起作用,因为连接字符串指向文件夹。但是,当尝试左连接两者时,连接字符串仅指向数据库或文本文件。我不知道如何为两者设置连接字符串或SQL。有什么想法吗?