用于捕获多个 SQL 结果集的 VBA 宏

use*_*787 0 sql-server vba

我曾多次使用与 SQL Server 相关的 VBA 宏,但它们始终是单个“select”语句或调用返回单个结果集的存储过程。现在我发现自己编写了一个宏来调用存储过程,但存储过程返回多个结果集。宏是否可以捕获每个 SQL 结果集并将其放在不同的工作表上?任何示例和/或指导将不胜感激。

Ext*_*Use 5

使用 .NextRecordset 可以轻松完成此操作。

Dim rs As ADODB.Recordset, success As Boolean
success = getAResultWith2Recordsets(rs)
If success = False Then
    MsgBox "Unable to records, no data"
    Exit Sub
Else
    Set Me.Recordset = rs ' for example on a report
    Set SecondRs = New ADODB.Recordset ' create empty recordset
    Set SecondRs = rs.NextRecordset ' assign it the next batch result
    Set rs = Nothing
End If
Run Code Online (Sandbox Code Playgroud)

等等。这只是一个示例,您将在.nextRecordset手册中找到所有必要的信息,例如如何迭代它们。