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)
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)