●概要●
[Delete]キーを押すなどしてレコード削除の操作をしたとき、レコードが実際に削除される直前に発生します。イベントプロシージャは、OnDelete/レコード削除時プロパティに設定します。
フォームで複数のレコードを選択して「Delete」キーを押すと、通常、すべてのレコードまとめて削除確認する既定のメッセージダイアログが表示されます。
複数のレコードをまとめて削除する場合でも、Deleteイベントはレコードごとに発生します。そこで、Deleteイベントを利用すれば、1レコードずつ削除確認のメッセージダイアログを表示することができます。Deleteイベントプロシージャの引数にTureを設定すると、Delteイベントをキャンセルすることができます。
次のコードは、レコードを削除するかどうかを1レコードずつ確認するものです。メッセージダイアログで[いいえ]ボタンがクリックされた場合、イベントをキャンセルします。その結果、レコードは削除されません。
●サンプル●
'レコード削除の確認を1レコードずつ行う
Private Sub Form_Delete(Cancel As Integer)
Dim myMes As String
Dim myRes As Integer
'社員番号を表示して削除確認をする
myMes = "社員NO " & Me!社員NO & " のレコードを削除しますか"
'削除を確認する
myRes = MsgBox(myMes, vbYesNo)
If myRes = vbNo Then
'イベントをキャンセルする
Cancel = True
End If
End Sub
●補足●
Deleteイベントプロシージャで削除確認を行ってレコードを削除することになった場合、再度システムから既定の削除確認のメッセージダイアログが表示されます。この既定のメッセージダイアログを表示しないようにするには、BeforeDelConfirmイベントを利用します。