实时错误3021

VB实例:学生系统总结(三)

——经典错误二:实时错误3021

学生系统中“实时错误3021  BOF 或EOF中有一个是“真”,或者当前记录被删除,所需操作要求一个当前的记录。”错误出现的次数仅次于上一篇博客中提到的错误“ 实时错误‘91’”

这个错误一般会出现在修改,查询等窗口代码中!

下面要简单说一下BOF 和EOF 的区别不同了。

BOF、EOF属性:

BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前。

EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后。

返回值:

BOF 和 EOF 属性返回布尔型值。

想要具体了解BOF 和 EOF 的意义和和用法请参考下边链接中的内容:

http://blog.csdn.net/mrbaymax/article/details/77415669

我在调试过程中遇到的问题,具体的位置如图所示:

这个问题的出现是因为数据库中没有记录造成的,针对这个问题添加程序段如下图所示:

下面来简单分析一下这段简单代码

 If mrc.RecordCount = 0 Then  ‘查询数据库中的数据条数

        MsgBox "没有记录,请关闭修改窗口!", vbOKOnly + vbExclamation, "警告"        ‘如果数据库中没有相关数据时弹出的警告窗口

       ‘当数据库中没有相关数据时 让查询窗口中的按钮控件失效

 cmdFirst.Enabled = False

        cmdPrevious.Enabled = False

        cmdNext.Enabled = False

        cmdLast.Enabled = False

         cmdcancel.Enabled = False

        cmdDelete.Enabled = False

        cmdEdit.Enabled = False

        cmdUpdate.Enabled = False

      Else

      mrc.MoveFirst

      

      Call viewdata

      myBookmark = mrc.Bookmark

      mcclean = True

      End If

这段程序稍加修改可以适用于学生系统中的大部分“实时错误3021”

具体的修改根据自己的情况来修改使用。

猜你喜欢

转载自blog.csdn.net/qq_39674002/article/details/77934196
今日推荐