1

VBA を使用して MySQL データベースにクエリを実行しています。これには、私が稼働しているODBCドライバーの使用が含まれます。

クエリの結果を VBA 多次元配列で返したいと考えています。(フィールドの列、レコードの行)

.RecordCountVBA の ODBC MySQL ドライバーには、成功時にプロパティが実際のレコード数ではなく -1 と評価されるという既知の問題があります。.EOFこれは、ループしてレコードを抽出する前に、配列のサイズを変更するために使用できないことを意味します。

私はこれを試しました:

If Rs.RecordCount <> 0 Then //Just check if it's not false as recordcount is not fully functional
        Fields = Rs.Fields.Count //This actually works
        rw = 1
        Dim result()
        Do Until Rs.EOF
            ReDim Preserve result(1 To rw, 1 To Fields)
            C = 1
            For Each MyField In Rs.Fields
                result(rw, C) = MyField
                C = C + 1
            Next MyField
            Rs.MoveNext
            rw = rw + 1
        Loop
        get_result = result //Output the result
End if

しかし、エラー 9: 下付き文字が範囲外です。これは私を夢中にさせています。phpではこれは些細なことですが、何らかの理由でVBAではこれを理解できません。何か案は?

4

2 に答える 2