当执行时,该语句每次总是只返回一条记录
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
是什么导致
我相信Recordset
的RecordCount
属性是动态设置为从游标读取的数据量。也就是说,当它第一次打开时,它被设置为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