Когда я делаю VBA в Excel, у меня есть класс, который я использую для доступа к БД, у меня есть функция, которая возвращает набор записей в массив.Надеюсь, что ниже поможет.
Public Function RSToArray(ByVal oRS, Optional ByVal iRows, Optional ByVal iStart, Optional ByVal aFieldsArray)
If iRows = 0 Then iRows = adGetRowsRest
If iStart = 0 Then iStart = adBookmarkfirst
RSToArray = "" ' return a string so user can check For (IsArray)
If IsObject(oRS) And oRS.State = adStateOpen Then
If Not oRS.BOF And Not oRS.EOF Then
If IsArray(aFieldsArray) Then
RSToArray = oRS.GetRows(iRows, iStart, aFieldsArray)
Else
If iRows <> adGetRowsRest Or iStart <> adBookmarkfirst Then
RSToArray = oRS.GetRows(iRows, iStart)
Else
RSToArray = oRS.GetRows()
End If
End If
End If
End If
End Function