在VBA中对SQL查询使用多个内部联接

在VBA中对SQL查询使用多个内部联接,sql,vba,excel,Sql,Vba,Excel,我想通过VBA excel运行sql查询,下面是我为两个表内部联接成功运行的代码 现在我想编辑查询,在这个查询中,我可以借助内部联接将更多的两个表组合在一起 subsql() Dim cn作为ADODB.Connection 将rs设置为ADODB.Recordset strFile=ThisWorkbook.FullName strCon=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=”&strFile_ &“扩展属性=”“Excel 12.0;HDR=Yes;

我想通过VBA excel运行sql查询,下面是我为两个表内部联接成功运行的代码

现在我想编辑查询,在这个查询中,我可以借助内部联接将更多的两个表组合在一起

subsql()
Dim cn作为ADODB.Connection
将rs设置为ADODB.Recordset
strFile=ThisWorkbook.FullName
strCon=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=”&strFile_
&“扩展属性=”“Excel 12.0;HDR=Yes;IMEX=1”“
Set cn=CreateObject(“ADODB.Connection”)
Set rs=CreateObject(“ADODB.Recordset”)
cn.开放式strCon
strSQL=“从[Sheet2$][Sr]=[Sheet3$][Sr]上的[Sheet3$]内部联接[Sheet2$]中选择[Sheet2$][Sr],[Code],[Family]””
''在这里,我想编辑代码,在内部联接的帮助下合并更多的两个表。
rs.开放式strSQL,中国
表3.记录集rs的范围(“D1”).副本
端接头
例如:-我在第4页还有一个表格,其中也有Sr标题。请指导我


如果您只想添加一个或多个连接,那么以下内容就足够了:

strSQL = strSQL  & " INNER JOIN [Sheet4$] ON [Sheet4$].[Sr]=[Sheet3$].[Sr]"

但是,您可能还希望在select子句中添加一些字段。我的建议是,将工作表标识符添加到所有字段中,如:[Sheet3$].[Code],如果在新加入的表中使用了字段名,则可以避免消除字段名的歧义

必须对多个连接使用括号:

"FROM (( [Sheet3$] " & _ 
"INNER JOIN [Sheet2$] ON [Sheet2$].[Sr]=[Sheet3$].[Sr] ) " & _
"INNER JOIN [Sheet4$] ON [Sheet4$].[Sr]=[Sheet3$].[Sr] )"

字段名为Sr.open?也许试着用Sr_open替换它。它是否与注释过的SQL字符串一起工作?