Excel 2010 VBA中的SQL Server - 多行数据

Kev*_*ope 1 excel vba excel-vba export-to-excel

我试图从SQL Server中获取多行,然后在VBA中操作它们.我有与数据库工作的连接,我可以通过使用Range().CopyFromRecordSet()函数获取我需要的所有数据,但是我只想操作VBA中的数据而不是将工作表放入其中.
使用Recordset对象,我可以访问字段名称和第一行数据,但我无法访问所有行.
当我使用Recordset.GetRows()函数时,我可以访问所有数据,但它没有以任何方式构造,也没有附加到记录的字段名称,因此很难使用.

如何以结构化方式循环浏览结果中的不同行?

这是我的代码:

Sub grabData()
    Dim dbConn As ADODB.Connection
    Set dbConn = openDBConn()
    Dim results As ADODB.Recordset
    Set results = dbConn.Execute("SELECT Field1, Field2, Field3 FROM Table WHERE Field1 = 'Foobar' AND Field2 > '42'")

    'Cycles through the first row of data'
    For Each f In results.Fields
      Debug.Print f.Name & " " & f
    Next

    'Cycles through all data, but no Column names'
    For Each f In results.GetRows
        Debug.Print f
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

tra*_*or1 6

Do While Not results.EOF
   For Each f In results.Fields
      Debug.Print f.Name & " " & f.Value
   Next
   results.MoveNext
Loop
Run Code Online (Sandbox Code Playgroud)