●概要●
[Delete]キーを押すなどしてレコード削除の操作をしたとき、削除確認のメッセージダイアログが表示され、レコードが実際に削除された直後に発生します。このイベントは、削除をキャンセルした場合にも発生します。イベントプロシージャは、AfterDelConfirm/削除後確認プロパティに設定します。
AfterDelConfirmイベントプロシージャの引数に代入された値から、レコードが削除されたかどうかを取得することができます。acDeleteOkの場合、正常に削除されています。acDeleteCancelの場合、コードによって削除がキャンセルされています。acDeleteUserCancelの場合、ユーザーが削除をキャンセルしています。
次のコードは、削除操作の結果を表示するものです。
●サンプル●
Sub PrintDialogueSample()
'エラーの場合、myErr: へ
On Error GoTo myErr
'レポート[名簿]を選択する
DoCmd.SelectObject acReport, "名簿", True
'印刷ダイアログボックスを開く
DoCmd.RunCommand acCmdPrint
'プロシージャを終了
Exit Sub
myErr:
'エラーメッセージを出す
MsgBox Err.Description
End Sub
Private Sub Form_AfterDelConfirm(Status As Integer)
Select Case Status
Case acDeleteOK
MsgBox "レコードが削除されました"
Case acDeleteCancel
MsgBox "コードでキャンセルされました"
Case acDeleteUserCancel
MsgBox "ユーザーがキャンセルしました"
End Select
End Sub
BeforeDelConfirmイベントが発生したときに、カスタムのメッセージダイアログを表示して、削除確認をしている点に注目してください。このメッセージダイアログで「いいえ」がクリックされたときに、コードで削除がキャンセルされたことになります。
●補足●
Deleteイベントをキャンセルすると、AfterDelConfirmイベントは発生しませんが、BeforeDelConfirmイベントをキャンセルした場合には、AfterDelConfirmイベントは発生します。