背景
思路
前几天师傅给验项目,虽然代码都敲完了,但是错误还是很多的,师傅问我把你的班级信息都删完会怎么样,我当时就说不怎么样呀,删完就删完呗。结果报错了(如下图)
思路
看到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
总结
优化是一个细心的过程,细节决定成败!
希望这篇博客可以帮到更多的人!