当我使用记录集从表中读取时,一切正常,recordcount函数显示正确的数量,但当我使用这个简单的查询或任何查询时,我总是得到1作为记录数。
这里有什么工作
Option Compare Database
Option Explicit
Public Sub LoadQ2()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("test")'test is the name of my table which contains 13 rows
With rs
Debug.Print .RecordCount
.Close
End With
Set db = Nothing
Set rs = Nothing
End Sub
这里有什么不行的
Option Compare Database
Option Explicit
Public Sub LoadQ2()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT test.number_id FROM test"
Set db = CurrentDb
Set rs = db.OpenRecordset(strSQL)
With rs
Debug.Print .RecordCount
.Close
End With
Set db = Nothing
Set rs = Nothing
End Sub
我的两个记录计数都应该得到相同的结果吗?另外,我想在调试中看到我在记录集中的行是否可以在调试窗口中打印记录集的内容?
答案 0 :(得分:1)
要打印记录集的内容,您可以执行以下两个选项之一..
debug.print rs.fields(0) & ", " & rs.fields(1)
或
debug.print rs("ColumnNameHere") & ", " & rs("AnotherColumnName")
答案 1 :(得分:0)
....找到了答案
在做Debug.Print之前.RecourdCount我添加.MoveLast并获得了正确的记录数量
看起来记录计数只意味着他记录了多少记录
答案 2 :(得分:0)
只是为了补充,因为你已经找到了答案:)
动态数据类型(DAO记录集的默认值)在完成所有记录之前不会完全填充 - 因为需要在检查实际拥有的记录数之前执行.MoveLast。
我认为DAO只是为recordcount返回1作为一种简单的方法来预先检查记录集是否为空(例如recordcount> 0),而不必经历在记录之间移动的麻烦。