VB6.0 BOF或EOF中有一个是"真",或者当前的记录以被删除,所需的操作要求一个当前的记录

飞天小猪 2011-05-02 01:54:44
问题还是老问题 不过百思不得其解 只能求助论坛各位高手
用VB6.0访问Access数据库,遇到问题如下:

点击查询按钮,输入要查询的编号,然后输出,简单主要代码如下:

Dim fileno As Integer
ReT.Open "select * from file_Info order by 文档编号 asc", Con, adOpenKeyset, adLockBatchOptimistic
Dim min As Integer
Dim max As Integer
ReT.MoveFirst
min = Val(ReT.Fields("文档编号"))
ReT.MoveLast
max = Val(ReT.Fields("文档编号"))
fileno = InputBox("请输入要查询的文档编号:" & Chr(13) & "请注意输入的数字比如在" & min & "-" & max & "之间!", "查询")

If Not ReT.BOF And Not ReT.EOF Then
ReT.Find "文档编号=" & fileno
MsgBox ReT.Fields("文档编号")
End If
Fill '此为将查询的结果的各个列分别填入文本框中
ReT.Close

我数据表中总共有4条记录,也就是文档编号为1—4,运行程序时输入 4 可以得到正确结果,输入1—3均会提示“BOF或EOF中有一个是"真",或者当前的记录以被删除,所需的操作要求一个当前的记录”,然而点击“调试”,会跳到“MsgBox ReT.Fields("文档编号")”
如果BOF或EOF中有一个是"真"的话,根本就过不了IF语句啊!数据库中的记录也没有删除!
请问我该怎么办?
谢谢各位了。。。
...全文
398 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞天小猪 2011-05-02
  • 打赏
  • 举报
回复
谢谢你!
问题解决了,就是少了这一句“ReT.MoveFirst”

[Quote=引用 3 楼 jhone99 的回复:]

Dim fileno As Integer
ReT.Open "select * from file_Info order by 文档编号 asc", Con, adOpenKeyset, adLockBatchOptimistic
Dim min As Integer
Dim max As Integer
ReT.MoveFirst
min =……
[/Quote]
jhone99 2011-05-02
  • 打赏
  • 举报
回复
Dim fileno As Integer
ReT.Open "select * from file_Info order by 文档编号 asc", Con, adOpenKeyset, adLockBatchOptimistic
Dim min As Integer
Dim max As Integer
ReT.MoveFirst
min = Val(ReT.Fields("文档编号"))
ReT.MoveLast
max = Val(ReT.Fields("文档编号"))
fileno = InputBox("请输入要查询的文档编号:" & Chr(13) & "请注意输入的数字比如在" & min & "-" & max & "之间!", "查询")

ReT.MoveFirst
while not ReT.EOF
If "文档编号=" & fileno Then
MsgBox ReT.Fields("文档编号")
wend
Fill '此为将查询的结果的各个列分别填入文本框中
ReT.Close
dbcontrols 2011-05-02
  • 打赏
  • 举报
回复
哪行提示怎么不肯说?
飞天小猪 2011-05-02
  • 打赏
  • 举报
回复
自己先顶下 是不是问题没有描述清楚呢 还请做过的朋友帮帮忙啊

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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