我正在使用 VBA 查询 MySQL 数据库。这涉及使用我已经启动并运行良好的 ODBC 驱动程序。
我想在 VBA 多维数组中返回我的查询结果。(字段为列,记录为行)
VBA 中的 ODBC MySQL 驱动程序存在一个已知问题,即该属性的.RecordCount
计算结果为 -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 中解决这个问题。有任何想法吗?