为什么 GetRows() 方法 return 是转置数组?

Why does GetRows() method return a transposed array?

我正在使用 Adodb 连接 并读取查询结果 进入数组

array = recordSet.GetRows()

这会导致转置维度数组

(row,col)

(0, 0)

(0, 1)

(0, 2)

而不是

(row,col)

(0, 0)

(1, 0)

(2, 0)

所以它应该是一个 3 x 1 而不是 1 x 3 的数组 有什么建议吗?

这是因为它返回的数组包含 (intField, intRecord):

https://msdn.microsoft.com/en-us/library/office/ff194427.aspx

因此,intField 基本上是 Column 而 intRecord 是 Row(都是从零开始)的方式存在不同的解释。

注意(使用 ADODB 驱动程序):

Range("A1").CopyFromRecordset recordset     ;does not transpose a 
                                            ;recordset
varArray = recordset.GetRows(10)            ;transposes a recordset
Range("A1:L10").Value = varArray            ;does not transposes array
listbox.list = varArray                     ;does not transposes array
listbox.column = varArray                   ;transpose array
listbox.column = recordset.GetRows(10)      ;does not transpose a 
                                            ;recordset