即効テクニック |
●概要● [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イベントは発生します。