RunCommand メソッド

Last-modified: 2021-12-21 (火) 00:33:36

acCmdDeleteRecord

連結フォームのカレントレコードを削除します。

Call DoCmd.RunCommand(acCmdDeleteRecord)

削除時に確認メッセージを表示しますが、「いいえ」を応答すると実行時エラー '2501' を発生します。

1 件のレコードを削除します。

[はい] をクリックすると、削除したレコードを元に戻すことはできません。
これらのレコードを削除してもよろしいですか?
[はい] [いいえ]
実行時エラー '2501':
RunCommand アクションの実行は取り消されました。

処理方法1

これを処理するには、エラーをトラップします。

Private Sub コマンド1_Click()

On Error GoTo ErrorHandler
    Call DoCmd.RunCommand(acCmdDeleteRecord)
On Error GoTo 0

Exit Sub

ErrorHandler:
    If Err.Number = 2501 Then
        Call MsgBox("レコードの削除を取り消しました。")

    End If

End Sub

また、レコードがない時は、実行時エラー '2046' を発生します。

処理方法2

DoCmd.SetWarnings メソッドでメッセージを抑制し、自前で処理することもできます。

Private Sub コマンド1_Click()
    If MsgBox("現在のレコードを削除しますか。", vbOKCancel) = vbOK Then
        Call DoCmd.SetWarnings(False)

        Call DoCmd.RunCommand(acCmdDeleteRecord)

        Call DoCmd.SetWarnings(True)

    End If

End Sub