为什么我的记录集总数只有一个?

hlf 2001-12-12 03:39:57
dim cn As DAO.Database
dim res As DAO.Recordset
Set cn = OpenDatabase(App.Path & "\db1.mdb")
Set res = cn.OpenRecordset("abc", dbOpenDynaset)
MsgBox res.RecordCount

结果为'1'。
如果打开记录集的类型为'表集型'或'快照型'的话,又不能
使用findfirst等命令。
...全文
58 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlf 2001-12-12
  • 打赏
  • 举报
回复
谢谢,没想到犯了一个低级错误,哈哈哈!!!!
foolishtiger 2001-12-12
  • 打赏
  • 举报
回复
判断时未到,可判断后,你又移动了指针了,这时就到了,当然会出错了.
把Move语句放到if结构前.
或用Do Loop循环.
hlf 2001-12-12
  • 打赏
  • 举报
回复
TO:foolishtiger(吴文智) 
谢谢!为什么用BOF或EOF不能判断出指针已经到达记录头或记录尾呢?
我的方法如下:
If Not res.BOF Then If Not res.EOF Then
res.MovePrevious res.MoveNext
'赋值 '赋值
。 。
。 。
。 。
End If End If
记录指针已经到达记录头或记录尾了,但程序无法判断出,执行赋值语句马上出错。

foolishtiger 2001-12-12
  • 打赏
  • 举报
回复
dim cn As DAO.Database
dim res As DAO.Recordset
Set cn = OpenDatabase(App.Path & "\db1.mdb")
Set res = cn.OpenRecordset("abc", dbOpenDynaset)

'加入
res.MoveLast
res.MoveFirst

MsgBox res.RecordCount

这样得到的RecordCount就正确了.
cornerxu 2001-12-12
  • 打赏
  • 举报
回复
就用 dbOpenTable
我觉得不存在问题
derek 2001-12-12
  • 打赏
  • 举报
回复
再open res之前加下面一句
res.CursorLocation = adUseClient
相关推荐
发帖
VB基础类

7681

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2001-12-12 03:39
社区公告
暂无公告