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