レコードを削除するために Delete キーを押すなど、レコードが実際に削除される前にユーザーが何らかの操作を実行した場合に発生します。
構文
式。Delete キー (キャンセル)
expressionForm オブジェクトを表す変数です。
パラメーター
| 名前 | 必須 / オプション | データ型 | 説明 |
|---|---|---|---|
| Cancel | 必須 | Integer | Delete イベントを発生させるかどうかを設定します。 Cancel 引数を True (1) に設定すると、Delete イベントが取り消されます。 |
注釈
これらのイベントが発生したときにマクロまたはイベント プロシージャを実行するには、 OnDelete、 BeforeDelConfirm、または AfterDelConfirm プロパティをマクロの名前または [Event Procedure] に設定します。
削除された直後のレコードは、一時的なバッファーに保存されます。 BeforeDelConfirm イベントは、Delete イベントの後、または複数のレコードを削除したときには、すべてのレコードを削除した後 (レコードを削除するたびに Delete イベントが発生します) で、削除を確認するダイアログ ボックスが表示される前に発生します。 BeforeDelConfirm イベントをキャンセルすると、バッファーから 1 つまたは複数のレコードが復元され、削除を確認するダイアログ ボックスは表示されません。
AfterDelConfirm イベントは、レコードが実際に削除されるか、または削除がキャンセルされた直後に発生します。 BeforeDelConfirm イベントがキャンセルされない場合は、AfterDelConfirm イベントは、削除を確認するダイアログ ボックスが表示された後で発生します。 また、 AfterDelConfirm イベントは、 BeforeDelConfirm イベントが取り消された場合にも発生します。 AfterDelConfirm イベント プロシージャでは、削除に関するステータス情報が返されます。 たとえば、AfterDelConfirm イベント マクロやイベント プロシージャを使って、レコードの削除に影響を受ける集計を再計算することができます。
Delete イベントを取り消すと、BeforeDelConfirm イベントと AfterDelConfirm イベントは発生しません。また、削除を確認するダイアログ ボックスも表示されません。
注:
[Access オプション] ダイアログ ボックスの [詳細設定] タブで、[確認] の下の [変更の記録] チェック ボックスをオフにすると、BeforeDelConfirm イベントおよび AfterDelConfirm イベントは発生せず、[削除確認] ダイアログ ボックスは表示されません。
Delete イベントが発生したときに実行されるマクロやイベント プロシージャを使って、レコードが削除されないようにしたり、特定の条件を満たす場合にだけレコードが削除できるように制限したりできます。 Delete イベントを使用して、レコードが削除される前に確認を求めるダイアログ ボックスを表示することもできます。
レコードを削除するには、[編集] メニューの [レコードの削除] を選択します。 カレント レコード (レコード セレクターに現在のレコードとして示されるレコード) が削除されます。 レコード セレクターを選択するか、[編集] メニューの [レコードの選択] を選択してレコードを選択し、Delete キーを押して削除することもできます。 現在のレコードのレコード セレクターである [レコードの削除] を選択するか、[ レコードの選択] を選択すると、フォーカスを持つコントロールの 終了 イベントと LostFocus イベントが発生します。 レコードのデータを変更した場合は、 Exit イベントと LostFocus イベントが発生する前に、変更したレコードに対して BeforeUpdate イベントや AfterUpdate イベントが発生します。 別のレコードのレコード セレクターを選択すると、そのレコードの Current イベントも発生します。
レコードを削除すると、削除されたレコードの次のレコードにフォーカスが移動し、そのレコードの Current イベントが発生し、その後、そのレコードの最初のコントロールの Enter イベントと GotFocus イベントが発生します。
削除を確認するダイアログ ボックスが表示される直前に、 BeforeDelConfirm イベントが発生します。 ダイアログ ボックスに応答 (削除を確定またはキャンセル) すると、 AfterDelConfirm イベントが発生します。
一度に複数のレコードを削除することもできます。 この場合、各レコードが削除されるたびに Delete イベントが発生します。 これにより、 Delete のマクロまたはイベント プロシージャで、各レコードが実際に削除される前にレコード内のデータにアクセスして、各レコードを削除するかどうか選択できます。 複数のレコードを削除すると、最後に削除されたレコードに続くレコードの Current イベント、およびこのレコードの最初のコントロールの Enter イベントおよび GotFocus イベントは、すべてのレコードが削除されるまで発生しません。 つまり、 Delete イベントは選択した各レコードに対して発生しますが、他のイベントは選択したすべてのレコードが削除されるまで発生しません。 BeforeDelConfirm イベントおよび AfterDelConfirm イベントも、選択したレコードがすべて削除されるまで発生しません。
例
次の使用例では、テーブルからレコードを削除できないようにします。 次の使用例の実行結果を確認するには、テーブルを基に作成したフォームに対し、次のイベント プロシージャを追加します。 フォームのデータシート ビューに切り替えて削除を実行しても、レコードは削除されません。
Private Sub Form_Delete(Cancel As Integer)
Cancel = True
MsgBox "This record can't be deleted."
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。