Accessでは、テーブルのデータシートビューでもフォームでも、レコードを削除しようとすると図のようなメッセージが表示されます。常に表示させなくてよい場合にはAccessのメニューの[オプション]によって設定することができますが、ここではフォームのレコード編集において、イベントプロシージャを使って表示を抑制する方法、さらに独自のメッセージを表示する方法をご紹介します。
まず、フォームのプロパティウィンドウから[削除前確認]のイベントプロシージャをコードビルダによって作成します。
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
End Sub
ここには削除されようとしている状態での処理を記述します。削除していいのかあるいは削除操作を中止するのか、またAccessのメッセージの表示をするかどうかの2つの返値をセットします。
例:そのまま何もメッセージを表示せずに削除する場合
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
Response = acDataErrContinue
End Sub
例:独自の削除確認メッセージを表示する場合
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
Beep
If MsgBox("削除しますか?", vbYesNo + vbQuestion)
= vbYes Then
Response = acDataErrContinue
Else
Cancel = True
End If
End Sub
例:常に削除させない場合
すべてのレコードに関して削除を禁止する場合には[削除の許可]プロパティを"いいえ"に設定しますが、さまざまな条件によって削除を許可したり禁止したりする場合にはこのイベントプロシージャを使用します。
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
Beep
MsgBox "削除できません!"
Cancel = True
End Sub
|