フォームに表示されているレコードを削除するボタンを配置します。
新規レコードを判定します。MsgBoxで削除してもよろしいですか?の確認を行います。
新規レコードの判定は「If Me.NewRecord = True Then」で行います。
レコードの削除は「 DoCmd.RunCommand acCmdDeleteRecord」で行います。
Home コントロール2
■コマンドボタンをフォームに配置します。
1.フォームデザインビューでコマンドボタンを選択します。
2.フォームにボタンを配置します。 今回はフォームヘッダーに配置しましたが、詳細やフッター領域でも構いません。
1.コマンドボタンを選択状態にしておきます。
2.プロパティ書式タブの標題にボタンに表示する文字を入力します。 ここでは「レコードの削除」と入力しました。
1..プロパティイベントタブのクリック時の▼をクリックし、イベントプロシージャを選択します。
2.▼横の[・・・]をクリックします。
■レコードを削除するVBAコードを入力
VBE画面が開き、クリックイベントのコードに移動します。
下記のレコード削除コードを入力します。
何らかの原因で発生したエラーに対処するため、On Error GoTo ErrExitでエラー対策しています。Err.Descriptionでエラー内容を表示するようにしています。
Private Sub コマンド23_Click()
Dim lans As Long
If Me.NewRecord = True Then
MsgBox "新規レコードは削除できません"
Exit Sub
End If
lans = MsgBox("削除してもよろしいですか?", vbYesNo + vbInformation, "確認")
If lans = vbNo Then
Exit Sub
End If
On Error GoTo ErrExit
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Exit Sub
ErrExit:
MsgBox "エラーが発生した為、削除できませんでした。" & vbCrLf & "エラー内容: " & Err.Description
End Sub
■フォームビューで実行する
フォームが新規レコードの場合、新規レコードは削除できませんと表示され削除できません。
登録済みのレコードの場合。削除してもよろしいですか? はい・いいえと表示され、はいをクリックするとレコードは削除されます。
DoCmd.SetWarnings False はレコードを削除する場合、下記のAccessのシステムメッセージを表示させない為です。
このコードを入力していないと、「削除してもよろしいですか?」と「1件のレコードを削除します。」の2回も確認することになります。