【学生信息管理系统】--实时错误‘3021’

背景
前几天师傅给验项目,虽然代码都敲完了,但是错误还是很多的,师傅问我把你的班级信息都删完会怎么样,我当时就说不怎么样呀,删完就删完呗。结果报错了(如下图)

思路
看到BOF和EOF,首先得知道它两什么意思。

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

之后再分析这个错误,当记录都删完了之后,Recordset没有记录,BOF或EOF找不到自己我位置。所以才会报错,之后我用思维导图理了一下删除的过程(如下图,估计只有我能看懂)

解决办法
加上一句判断它是否是最后一条的代码。

If mrc.RecordCount = 1 Then 
    str2$ = MsgBox("这是最后一条记录,是否删除?", vbOKCancel + vbExclamation, "警告") 
        If str2$ = vbOK Then 
            mrc.Delete
            str2$ = MsgBox("数据为空,是否添加?", vbOKCancel + vbExclamation, "警告") 
                If str2$ = vbYes Then
                    SetParent frmAddclassinfo.hWnd, fmainform.hWnd 
                Else 
                Unload Me 
                Exit Sub 
                End If
        Eles
        Exit sub
        End If
End If

加上判断代码之后,在打开修改窗体还是会报错,所以我们还得在主窗体上添加判断是否有数据的代码。

If mrc.RecordCount = 0 Then 
       MsgBox "数据为空", vbOKOnly + vbExclamation, "提示" 
Exit Sub 
End If

总结
优化是一个细心的过程,细节决定成败!

希望这篇博客可以帮到更多的人!

如有不对的地方还请各位大佬在评论区加以斧正!

猜你喜欢

转载自blog.csdn.net/ywq1016243402/article/details/80141946
今日推荐