VB中dao组件返回rs.recordcount前后两个数据为什么不一样,请高手指点?
Private Sub Command1_Click()
Dim db As Database
Dim rs As Recordset
Set db = DBEngine.OpenDatabase(App.Path & "\test.xls", False, False, "Excel 8.0;")
SQL = "select * from [sheet1$]"
Set rs = db.OpenRecordset(SQL)
Print App.Path
Print "rs.RecordCount=", rs.RecordCount
Print rs.Fields.Count
For i = 0 To 5
Print rs.Fields("姓名")
rs.MoveNext
Next
rs.MoveFirst
Print "rs.RecordCount=", rs.RecordCount
Do
Print rs.Fields("分数")
rs.MoveNext
Loop Until rs.EOF
Print rs.EOF
End Sub
[解决办法]
真是个悲催的方法:)
The RecordCount property doesn't indicate how many records are contained in a dynaset-, snapshot-, or forward-onlytype CdbRecordset object until all records have been accessed.
Once the last record has been accessed, the RecordCount property indicates the total number of undeleted records in the CdbRecordset or CdbTableDef object.