Office中国论坛/Access中国论坛

标题: 为什么recordcount的值为-1 [打印本页]

作者: feier    时间: 2003-6-5 00:28
标题: 为什么recordcount的值为-1
我有二条Recoreset,现在我要将这二条recordset(record1、record2)互相对比,看record1里有没有record2不同的数据,或record2中有没有record1不同的数据,逐条逐条对比,而我所有的表都是通过[B]ADO[/B]的方式访问的,为什么当我如下那样写:
record1.MoveFirst
For i = 1 To record1.[B]RecordCount[/B]这个recordcount的值为1
record2.MoveFirst
  For j = 1 To record2.[B]RecordCount[/B]这个recordcount的值为-1
        If record1(i) = record2(j) Then
           Exit For
        Else
           j = j + 1
        End If
   Next j
   If record2.EOF Then
   Exit For
   End If
            
  Next i
作者: Trynew    时间: 2003-6-5 04:44
数据表记录数较大或SQL数据库,Recoreset不会返回所有记录,recordcount的值为-1表示记录数为未知。
可以先执行recordset.MoveLast,再recordset.MoveFirst,可以取得正确recordcount。
也可以用do 循环代替For 循环,即
Do while not recordset.Eof
......
   recordset.MoveNext
Loop
这样不用取得记录数即可遍历所有记录,进行处理。

作者: feier    时间: 2003-6-5 18:30

加了record1.movelast
record1.MoveFirst
For i = 1 To record1.RecordCount这个recordcount的值有了
加了 record2.movelast
record2.MoveFirst
  For j = 1 To record2.RecordCount但这个recordcount的值仍为-1
        If record1(i) = record2(j) Then
           Exit For
        Else
           j = j + 1
        End If
   Next j
   If record2.EOF Then
   Exit For
   End If
            
  Next i
这是为什么呢




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3