学生信息管理系统—实时错误“3021”

一出现3021问题就是BOF或EOF中有一个是"真",或者当前记录已被删除,操作要求一个当前的记录。

首先得清楚什么是BOF和EOF

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

BOF跟EOF的返回值为:

BOF:为True:表示的是当前指针的位置是在的第一行的前面。

           为False:时表示的是指针的位置是在第一行,或者第一行的后面。

EOF:为True表示当前的是当前指针的位置是在最后一行的后面

           为False表示指针的位置是在最后一行,或者在最后一行的前面。

在修改成绩窗体中,删除记录,当删除完表中的数据就会报3021的错误

错误出现的原因:

因为需要查询的表在数据中没有任何的数据。例如    当系统中还没有添加任何信息,然后点击修改信息点的时候,就会弹出事实错误3921 的错误

以下是我做的对3021错误的修改

 mybookmark = mrc.Bookmark '做标记
    str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")

        If str2$ = vbOK Then
            mrc.MoveNext
            If mrc.RecordCount = 1 Then
                str2$ = MsgBox("这是最后一条记录,是否删除?", vbOKCancel + vbExclamation, "警告")
                If str2$ = vbOK Then
                mrc.MoveFirst
                mybookmark = mrc.Bookmark
                mrc.MoveLast
                mrc.Delete
                mrc.Bookmark = mybookmark
                str2$ = MsgBox("数据为空!", vbOKOnly + vbExclamation, "提示")
                    If str2$ = vbOK Then
                    Unload Me
                    frmaddclassinfo.Show
                    Exit Sub

                    Else
                    Unload Me
                    frmaddclassinfo.Show
                Exit Sub
                End If
                Else
            Exit Sub
            End If
            Else
            mybookmark = mrc.Bookmark '记载当前位置
            mrc.MovePrevious
            mrc.Delete
            mrc.Bookmark = mybookmark '取消标记
            Call viewData
        End If
        End If

还可以加error GOTO拍错语句。3021是一个经典错误,大家也可以自己想解决问题的办法。如有不正确,请及时斧正!


版权声明:本文为weixin_42678716原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。