【发布时间】:2011-01-25 04:51:00
【问题描述】:
我正在尝试将数据从记录集中直接移动到数组中。我知道这是可能的,但我特别想在 VBA 中执行此操作,因为这是在 MS Access 2003 中完成的。
通常我会执行以下操作来实现此目的:
Dim vaData As Variant
Dim rst As ADODB.Recordset
' Pull data into recordset code here...
' Populate the array with the whole recordset.
vaData = rst.GetRows
VB 和 VBA 之间存在哪些差异导致这种类型的操作不起作用?
性能问题呢?这是一个“昂贵”的操作吗?
【问题讨论】:
-
记录集是一个数组,比 VBA 数组更通用(即,按列名引用,而不仅仅是列索引)。为什么不直接使用记录集?我用 VBA/DAO 编程已经十多年了,从来没有使用过 GetRows。是什么让你觉得你需要它?
-
专门用于最小化与其他 ADODB 对象的连接打开时间。
-
那么 ADO 断开连接的记录集呢?
-
@David-W-Fenton - 如果您在 VBA/DAO 中编程,那么 .GetRows 更容易将数据作为一个块写入另一个应用程序(如 Excel),而无需通过循环填充。示例:
ArrayA = Rst.GetRows(Rst.RecordCount)
标签: performance ms-access