recordset对象的recordcount属性的返回值不准确

lyhfox 2000-06-19 11:24:00
dim mreco as recordset
dim mdatabase as database
dim i as long

set mreco=mdatabase.openrecordset("mytablename",dbopentable)
i=mreco.recordcount

通过access打开数据库,发现表mytablename里的记录总数和 i 值不等。
请问各位大虾:recordcount属性为啥不准确?而有的表记录数准确。
...全文
180 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
forest 2000-06-20
  • 打赏
  • 举报
回复
recordcount是RecordSet对象处理过的记录数。
zzj_mjz 2000-06-20
  • 打赏
  • 举报
回复
要先执行movelast,把整个recordset都读一遍,recordcount才能正确.
mafangsan 2000-06-20
  • 打赏
  • 举报
回复
dim mreco as recordset
dim mdatabase as database
dim i as long

set mreco=mdatabase.openrecordset("mytablename",dbopentable)
mreco.MoveLast
mreco.MoveFirst
i=mreco.recordcount

试一试,应该i就是准确的了
mxp 2000-06-20
  • 打赏
  • 举报
回复
用Sql语句吧!recordcount问题很多的,比如没有记录还要mreco.movelast就要出错,
就要用一个if not mreco.bof or not mreco.eof then
mreco.movelast
i=mreco.recordcount
end if
或者
if mreco.recordcount<>0 then
mreco.movelast
i=mreco.recordcount
end if
多麻烦!

一个sql语句就搞定了

set mreco=mdatabase.openrecordset("select count(*) as mrecomax from mytablename",dbopentable)
i= mreco!mrecomax


Limu 2000-06-20
  • 打赏
  • 举报
回复
不是所有的Recordset都能用MoveLast后讀出Recordcount,有些查詢語句﹐比如多表聯合查詢將得不到RecordCount(永遠是-1)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧