学生管理系统-错误3021

出现3021问题就是bof或EOF中有一个是真,要不就是当前记录已被删除,要求一个当前记录。

首先得先搞清楚什么是BOF和EOF

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

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

 

BOF跟EOF的返回值为:

BOF:为true,表示当前指针的位置是在的一行的前面

         为false,表示当前指针的位置是在第一行,或者在第一行的后面

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

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

 

1.查找的数据库记录为空.

 

2.查找到数据后,用 Del 命令删除记录后,再引用 Fields 后会出现错误.

 

3.已经用MoveFirst 或用 MovePrevious 命令 移动至数据库开始后再用 MovePrevious 命令.

 

4.已经用MoveLast 或用 MoveNext 命令 移动至数据库开始后再用 MoveNext 命令.

 

就是数据库中没有数据。

Private Sub Cmddelete_Click()          '删除

    str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")

    If str2$ = vbOK Then       '点击确定

        mrc.Delete             '删除记录

        mrc.MoveNext           '指针往下走

           If mrc.EOF Then     '判断是否删

            If mrc.RecordCount = 0 Then         '判断上边有没有记录


                                             '如果没有的话卸载窗体

              MsgBox "无记录!"

            Unload Me

            Else                           

            mrc.MoveFirst            '否则指向第一条记录

            Call viewData

            End If

     End If

    End If

End Sub

 

 

发布了14 篇原创文章 · 获赞 0 · 访问量 660

猜你喜欢

转载自blog.csdn.net/weixin_42225180/article/details/103343818