|
本帖最后由 dicky_MM 于 2013-12-20 16:58 编辑
代码中GetRows中的"-1,1"是什么意思?
想把代码改成显示在excel单元格里,应该怎么改?
Sub 在记录之间循环2()
Dim conn As New Connection
Dim rst As New Recordset
Dim data As New 数据库
Dim x, arr, arr1
conn.Open data.Excel数据库
rst.Open "select * from [Sheet1$] where val(年龄)>25", conn, adOpenKeyset, adLockOptimistic
'MsgBox rst.RecordCount
arr1 = Array("姓名", "年龄")
arr = Application.Transpose(rst.GetRows(-1, 1, arr1))
For x = 1 To UBound(arr, 1)
Debug.Print arr(x, 1) & "," & arr(x, 2)
Next x
rst.Close
conn.Close
Set rst = Nothing
Set conn = Nothing
End Sub
GetRows 方法 (ADO)
用于将 Recordset 对象的多个记录检索到数组中。
语法
array = recordset.GetRows( Rows, Start, Fields )
返回值
返回一个变量,其值是二维数组。
参数
Rows
可选。GetRowsOptionEnum 值,指示要检索的记录数。默认值为 adGetRowsRest。
Start
可选。字符串型值或变量,变量计算得出的值为应从该处开始 GetRows 操作的记录的书签。也可以使用 BookmarkEnum 值。
Fields
可选。变量,代表单个字段名或序号位置,或一个含一些字段名或序号位置编号的数组。ADO 仅返回这些字段中的数据。
备注
使用 GetRows 方法可以将 Recordset 中的记录复制到一个二维数组中。第一个下标标识字段,第二个下标标识记录号。当 GetRows 方法返回数据时,array 变量的维度将自动设为正确的大小。
如果不指定 Rows 参数的值,GetRows 方法将自动检索 Recordset 对象中的所有记录。如果请求的记录数大于可用记录数,则 GetRows 仅返回可用数目的记录。
如果 Recordset 对象支持书签,则可以指定 GetRows 方法应从哪个记录开始检索数据,方法是在 Start 参数中传递该记录的 Bookmark 属性的值。
如果要限制 GetRows 调用返回的字段数,可以在 Fields 参数中传递单个字段名/编号或一个含多个字段名/编号的数组。
调用 GetRows 之后,下一个未读取的记录成为当前记录,如果没有更多记录,则 EOF 属性设置为 True。
|
|