设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1175|回复: 2
打印 上一主题 下一主题

[其它] 为什么recordcount的值为-1

[复制链接]
跳转到指定楼层
1#
发表于 2003-6-5 00:28:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我有二条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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2003-6-5 04:44:00 | 只看该作者
数据表记录数较大或SQL数据库,Recoreset不会返回所有记录,recordcount的值为-1表示记录数为未知。
可以先执行recordset.MoveLast,再recordset.MoveFirst,可以取得正确recordcount。
也可以用do 循环代替For 循环,即
Do while not recordset.Eof
......
   recordset.MoveNext
Loop
这样不用取得记录数即可遍历所有记录,进行处理。
3#
 楼主| 发表于 2003-6-5 18:30:00 | 只看该作者

加了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
这是为什么呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-9 22:17 , Processed in 0.856376 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表