我的数组似乎有值,但是给出了下标超出范围的错误

时间:2014-08-06 13:08:32

标签: arrays vba ms-access ms-access-2010 recordset

我想将dao记录集中的一行传递给数组,然后循环遍历数组,但它无法正常工作。下面的代码产生一个"下标超出范围"错误。

Dim avarRow As Variant    
avarRow = rsSource.GetRows(1)
For i = LBound(avarRow) To UBound(avarRow)
   MsgBox avarRow(i)
Next

但是,这段代码:

Dim avarRow As Variant    
avarRow = rsSource.GetRows(1)
For i = LBound(avarRow) To UBound(avarRow)
   MsgBox "There's something here..."
Next

触发测试消息框预期的次数 - 对于我捕获的行中的每个字段一次。这必须意味着数组中存在某些,那为什么我无法访问它?

我以前没用过.GetRows,所以我怀疑我的问题所在。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

来自http://msdn.microsoft.com/en-us/library/office/ff194427%28v=office.15%29.aspx

GetRows返回一个二维数组。第一个下标标识字段,第二个下标标识行号

试试这个

Dim avarRow As Variant
avarRow = rssource.GetRows(1)
For i = LBound(avarRow) To UBound(avarRow)
    MsgBox  avarRow(i, 0)
Next