学生信息管理系统敲完了,但是最多的问题就是EOF和BOF的错误,总是出像如下错误:
要想知道出错的原因和解决办法首先要了解BOF和EOF。
BOF指示当前记录位置位于 Recordset对象的第一个记录之前。
EOF对象的最后一个记录之后。
要十分注意:第一个记录之前和最后一个纪录之后,说的不是第一个记录,也不是第二个记录。
例如:当前已经显示最后一条记录了,指针定位于记录集的最后一条记录,如果再执行一次(仅一次否则就出错)Recordset.movenext,此时,Recordset.BOF=True。BOF的原理也一样。
另外查询记录为空,即没有查到任何记录时Recordset.EOF=True且Recordset.BOF=True
似乎明白了为什么出错,但是怎么解决呢,今天上午听了米老师讲课,恍然大悟,自己尝试着解决了,那就是用到了Err对象,所以有了一个解决办法:
在定义变量的前面编写On Error GOTO
例如在修改班级信息窗体为例子:
Private Sub Form_Load() On Error GoTo PROC_ERR Dim txtsql As String Dim Msgtext As String txtClassno.Enabled = False comboGrade.Enabled = False txtDirector.Enabled = False txtclassroom.Enabled = False txtsql = "select * from class_Info " Set mrc = Executesql(txtsql,Msgtext) mrc.MoveFirst Call viewData myBookmark = mrc.Bookmark mcclean = True Exit Sub PROC_ERR: Print "错误" MsgBox "无记录!" End Sub
这样问题就很容易解决了! 原文链接:https://www.f2er.com/vb/258659.html