学生信息管理系统敲完了,但是最多的问题就是EOF和BOF的错误,总是出像如下错误:
要想知道出错的原因和解决办法首先要了解BOF和EOF。
BOF指示当前记录位置位于Recordset对象的第一个记录之前。
EOF指示当前记录位置位于Recordset对象的最后一个记录之后。
要十分注意:第一个记录之前和最后一个纪录之后,说的不是第一个记录,也不是第二个记录。
例如:当前已经显示最后一条记录了,指针定位于记录集的最后一条记录,如果再执行一次(仅一次否则就出错)Recordset.movenext,此时,Recordset.BOF=True 。BOF的原理也一样。
另外查询记录为空,即没有查到任何记录时Recordset.EOF=True且Recordset.BOF=True
似乎明白了为什么出错,但是怎么解决呢,今天上午听了米老师讲课,恍然大悟,自己尝试着解决了,那就是用到了Err对象,所以有了一个解决办法:
在定义变量的前面编写On Error GOTO
例如在修改班级信息窗体为例子:
<span style="font-family:Courier New;font-size:18px;"><strong>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</strong></span>这样问题就很容易解决了!
版权声明:本文为u010785685原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。