如何从VBA Excel返回多个选择语句



我在Excel中设置了一个VBA过程,将一些文本插入到Excel选项卡中,然后将其作为命令文本发送给SQL查询以完成。

但是,在我的查询中,我有3个不同的表,我想分别返回(因此我的VBA代码中的3个不同连接)。

是否有一种方法可以使用我的查询返回三个不同的表,因此我不必单独运行查询3个单独的次数即可在末尾获取其他选择语句?

查询代码结束:

SELECT * FROM #MailMergeFormatStep1
SELECT * FROM #MailMergeFormatStep2
SELECT * FROM #MailMergeFormatStep3

我希望每个选择语句的结果都可以运行,然后返回到Excel中的单独表连接中。

代码:

Sub UploadCheckerQuery()
ActiveWorkbook.Connections("UploadCheckerConnection1").ODBCConnection.CommandText = Sheets("SQL1").Range("A5:A400").Value
ActiveWorkbook.Connections("UploadCheckerConnection1").Refresh
ActiveWorkbook.Connections("UploadCheckerConnection2").ODBCConnection.CommandText = Sheets("SQL2").Range("A5:A400").Value
ActiveWorkbook.Connections("UploadCheckerConnection2").Refresh
ActiveWorkbook.Connections("UploadCheckerConnection3").ODBCConnection.CommandText = Sheets("SQL3").Range("A5:A400").Value
ActiveWorkbook.Connections("UploadCheckerConnection3").Refresh
End Sub

可以从单个查询中返回多个记录集 - 这就是ADO命令NextrecordSet的目的。完整的详细信息在这里,但短暂地使用以下查询:" Select * From Table1; Select * From Table2"。但是,多个记录集必须在相同的连接上。

 Dim rs as new recordset
 set rs = connections(1).execute("Select * from table1:select * from table2)
 msgbox rs(0)
 rs.nextrecordset
 msgbox rs(0)

最新更新