SQL Server из Excel 2010 VBA - несколько строк данных - PullRequest
1 голос
/ 16 марта 2012

Я пытаюсь получить несколько строк из 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

1 Ответ

6 голосов
/ 16 марта 2012
Do While Not results.EOF
   For Each f In results.Fields
      Debug.Print f.Name & " " & f.Value
   Next
   results.MoveNext
Loop
...