出现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