レコード削除ボタンのVBAコード-Accessコントロール

フォームに表示されているレコードを削除するボタンを配置します。

新規レコードを判定します。MsgBoxで削除してもよろしいですか?の確認を行います。
新規レコードの判定は「If Me.NewRecord = True Then」で行います。
レコードの削除は「 DoCmd.RunCommand acCmdDeleteRecord」で行います。

BackHome Backコントロール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回も確認することになります。
Accessのシステムメッセージを表示させない

BackHome Backコントロール2

Copyright(C) FeedSoft