On Error GOTO的好处

    学生信息管理系统敲完了,但是最多的问题就是EOF和BOF的错误,总是出像如下错误:

On Error GOTO的好处_第1张图片

    要想知道出错的原因和解决办法首先要了解BOFEOF

    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>


    这样问题就很容易解决了!








你可能感兴趣的:(vb)