大家好,欢迎来到IT知识分享网。
一出现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是一个经典错误,大家也可以自己想解决问题的办法。如有不正确,请及时斧正!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139895.html