标题: 难题!为何会走到第50条记录就结束? [打印本页] 作者: royi 时间: 2003-6-12 23:53 标题: 难题!为何会走到第50条记录就结束? 这样的语句:
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
Set rst = Form_统计.RecordsetClone
Dim ss as integer
If rst.RecordCount > 0 Then
Dim aa As Integer '加的一个判断变量,用于调试程序
aa = 1
rst.MoveFirst
Do While Not rst.EOF
aa = aa + 1
rst.MoveNext
Loop
end if
stop
刚开始时统计的数量总是不正确,无奈之下加下变量aa调试:
记录共有2000多条,可执行时到stop处一看aa=51.
不明白,这个问题困扰我好几天了,求各位高手帮忙!! 作者: prince 时间: 2003-6-13 00:19
从这段代码中我看不出问题来!作者: royi 时间: 2003-6-13 01:45
哪为什么会到第50条记录就停止呢,是不是ado有一个记录缓冲的问题,就是说ado认为到结尾了!还是rst.movefirst不起作用?作者: gnoy 时间: 2003-6-13 01:59
VB5在处理数据库时的几个“BUG”
天宝光碟有限公司质检部
周峥嵘
---- VB5在处理数据库方面,提供了强大的功能,但是在笔者的使用过程中,发现了它也存在着一些“BUG”,现在介绍给大家,希望同志们在遇到相似的问题时做个参考。
---- VB主要处理的是MDB格式的数据库,但就在这方面,它就偏偏出了差错,先看看下例:
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(App.Path & "\zzr.mdb")
Set rs = db.OpenRecordset("test")
Debug.Print rs.RecordCount
---- 此例假设在应用程序目录下有一个名为“zzr.mdb”的数据库,而且它里边有一个名为“test”的表,此程序的目的就是求出该表中的记录的总数。此处用到的是“表”对象的RecordCount属性,这样用在一般性况下是正确的,但并不能保证在所有的情况下都能得出正确的结果,比如说表中的数据量很大,或者是数据库受到过什么损害等等。如果碰到这种情况,我们可以换一个角度来处理。请看下面的程序:
Dim db As Database
Dim rs As Recordset
Dim Num As Long
Set db = OpenDatabase(App.Path & "\zzr.mdb")
Set rs = db.OpenRecordset("test")
Num = 0
rs.MoveFirst
Do While Not rs.EOF()
Num = Num + 1
rs.MoveNext
Loop
Debug.Print Num
Dim db As Database
Dim rs As Recordset
Dim Num As Long
Dim SQL As String
Set db = OpenDatabase(App.Path & "\zzr.mdb")
Set rs = db.OpenRecordset("test")
SQL = "Update test set [bm]=1002 where [bm]=1001"
Db.Execute SQL