实时错误91

一,前言:

       在做学生系统的时候经常会遇到“实时错误‘91’”这个错误,我们亲切的称呼它为“夺命91”,这个错误还是有点麻烦的,但是又必须要解决,不然就没法往下走,所以就硬着头皮正面刚吧。

二,分析:

       当出现这种情况时大家不要盲目的去改,去搜,最好先想一下,可能会发生错误91的原因有哪些?开始之前的那些准备工作有没有做好,比如数据库的配置,ODBC的连接,查询语句的书写,代码的问题,以及数据库中是否有数据,在看完这些没问题之后再找其他原因,站在巨人的肩膀上,去看看他们是怎么解决的。

三、问题:

1.ODBC没有连接成功 

2.VB模块中连接数据库的代码,用户名、密码和ODBC不同步 

3.代码中语句出错,连接不到数据库中所要连接的表。

四、错误位置:

txtsql = "select * from user_Info where userID = '" & txtUserName.Text & "'"

Set mrc = ExecuteSQL(txtsql, msgtext)

If mrc.EOF=true Then

MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly, "提示"

txtUserName.SetFocus

else

       当在这里提示的时候我们肯定会想到数据库中有没有记录,有没有把想要的信息添加进去,既然在有EOF的这里出现,就再说一下EOF,在说EOF时肯定还有与之相对应的BOF,看看它们的用法:

BOF:指当前记录位置位于Recordset对象的第一个记录之前;

EOF:指当前记录位置位于Recordset对象的最后一个记录之后。

  这两个的属性值均返回布尔型:TrueFalse,使用BOF EOF 属性可确定 Recordset 对象是否包含记录,或者从一个记录移动到另一个记录时是否超出 Recordset 对象的限制。 下表即是各自的使用说明及查询结果:

  说明:

  (1)如果当前记录位于第一个记录之前,BOF 属性将返回 True(-1),如果当前记录为第一个记录或位于其后则将返回 False (0)

  (2)如果当前记录位于 Recordset 对象的最后一个记录之后 EOF 属性将返回True,而当前记录位于 Recordset 对象的最后一个记录或位于其前,则将返回 False

  (3)如果 BOF EOF 属性为 True,则没有当前记录。

  (4)如果打开没有记录的 Recordset 对象,BOF EOF 属性将设置为True,而 Recordset 对象的 RecordCount 属性设置为零。打开至少包含一条记录的 Recordset 对象时,第一条记录为当前记录,而BOF EOF 属性为 False

  (5)如果删除 Recordset 对象中保留的最后记录,BOF EOF属性将保持 False,直到重新安排当前记录。

  具体用法:

  If objRs.BOF Then

  表示:当前指针的位置是在第一行记录之前,则

  If objRs.EOF Then

  表示:当前指针的位置是在最后一行记录之后,则

  If Not objRs.EOF Then

  表示:当前指针的位置没有到达最后一条记录

  If Not objRs.BOF then

  表示:当前指针的位置没有到达第一条记录

  推荐使用下面两条

  If Not (objRs.BOF AND objRs.EOF) Then

  表示:指针位于RecordSet 的当中(并非是最后一条和第一条) ,说明一定有记录。

  If objRs.BOF AND objRs.EOF Then

  表示:没有任何记录

五、解决办法:

       使三者同步,即查询数据库表的代码规范,语法——ODBC——模块中的用户名,密码,数据库 。我的错误是在 If mrc.EOF Then 这句代码上提示有错,有时我们就会钻牛角尖,这句代码出现错误就在这一句上找,我出现的错误就要从这句话的前面找了。其实找来找去也看是数据库中的表名,列名和VB中的不一样。 所以不要局限于一处地方,要多想想与之有关联的地方。

 

转载自https://blog.csdn.net/yyp0304devin/article/details/81006617

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值