我目前正在使用Excel VBA和SQL查詢。我試圖把我放到我的記錄集中的內容轉儲到一個二維數組中,這樣我可以在函數的後面部分使用這些信息。問題是我只知道從記錄集中提取信息的兩種方法:CopyFromRecordset和rs.Fields。如何將記錄集值分配給二維數組
這是我嘗試的代碼。
Dim ID_Array(150, 2) As String
Set rs = New ADODB.Recordset
Set oConn = New ADODB.Connection
strSql = "select id, name from groups"
rs.Open strSql, oConn
Do While Not rs.EOF
With ActiveSheet
For Index = 0 To 171
ID_Array(Index, 0) = CStr(rs.Fields(0).Value)
'Safety check to make sure the value isn't null (was having problems before)
If rs.Fields(1).Value <> Null Then
ID_Array(Index, 1) = CStr(rs.Fields(1).Value)
End If
rs.MoveNext
Next
End With
Loop
rs.Close
我敢肯定,我沒有正確分配這些值,因爲當我去從記錄拉他們,很多要麼是錯誤的或根本不顯示(名字部分,特別是,甚至不會出現一個一個MsgBox命令字符串,所以我假設它沒有正確分配)。
任何人都有這方面的經驗?如何將rs的id部分分配給ID_Array的第一維,並將rs的名稱部分分配給ID_Array的第二維?
感謝您的答覆。我實際上回顧了我的代碼,基本上完成了同樣的事情。但是,現在我面臨着一個不同的問題。由於空檢查,rs的「名稱」部分不復制。每當我拿走空檢查,它給了我一個「無效的空使用」錯誤消息。 – Alfabit
@Alfabit:在我看來,你不能從ADODB.Recordset賦值給變量的空值,你必須檢查每個字段。 – Dawid