在VBA中使用多个内部连接进行SQL查询

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

现在我想编辑一个查询,在这个查询中,我可以在Inner join的帮助下组合更多的两个表。

Sub SQL() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset strFile = ThisWorkbook.FullName strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _ & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open strCon strSQL = "SELECT [Sheet2$].[Sr], [Code], [Family] FROM [Sheet3$] INNER JOIN [Sheet2$] ON [Sheet2$].[Sr]=[Sheet3$].[Sr]" ''Here i want to edit the code to combined more the 2 tables with the help of Inner join. rs.Open strSQL, cn Sheet3.Range("D1").CopyFromRecordset rs End Sub 

例如: – 我还有一张表,其中也是Sr头文件可用。请引导我相同。

在这里输入图像说明

如果你只想添加一个连接,就足够了:

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

但是,您可能还需要在select子句中添加一些字段。 我的build议是,在所有字段中添加图表标识符,如:[Sheet3 $]。[代码],如果在新连接的表中使用了字段名,将避免消除歧义。