MS-Access Recordset to Array,值被转置

时间:2017-01-10 22:31:13

标签: vba ms-access access-vba

当我使用以下方法时:

rstArray = rs.GetRows(rs.RecordCount)

数组的输出大小相同:

rstArray(1,6)  'just an example

实际上,输出(即使在查询中导致访问)也是:

rstArray(6,1)   'again just an example

我的问题是为什么这会被转换?

我该怎么扭转呢?我理解如果我使用后期绑定并使用excel我可以使用application.tranpose,但是如果我只是在Access中呢?

2 个答案:

答案 0 :(得分:2)

这就是GetRows的工作方式。即使您可以使用Excel的转置功能,如果记录数超过Excel中的最大列数,它也不会始终有效。

您有3个选项:

  1. 使用列行索引或行列来遍历数组。
  2. 编写一个辅助函数,为您进行换位。
  3. 如果您所做的只是将数据插入Excel,请不要使用GetRows。请改用Range.CopyFromRecordset方法。

答案 1 :(得分:0)

使用Application.WorksheetFunction.Transpose (rs.GetRows)

此致 TheSilkCode