在代码集中执行时,Recordset只返回一条记录



当执行时,该语句每次总是只返回一条记录

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Select book_name from book")
Dim i As Integer
For i = 0 To rs.RecordCount - 1
lbBooks.AddItem rs!book_name
rs.MoveNext
Next

是什么导致

我相信RecordsetRecordCount属性是动态设置为从游标读取的数据量。也就是说,当它第一次打开时,它被设置为1;如果执行rs.MoveLast,它会将其设置为集合中的实际记录数。然而,您会遇到返回到开头的问题:您必须以特定模式打开记录集(我从头顶上忘记了这一点),才能任意前后移动光标指针。

遍历光标的常用方法是使用while循环,检查光标的文件结尾:

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Select book_name from book")
Dim i As Integer
i = 0 
While Not rs.EOF
  lbBooks.AddItem rs!book_name
  rs.MoveNext
  i = i + 1
Wend

相关内容

最新更新