CancelEvent マクロ アクション

CancelEvent アクションを使うと、Access がこのアクションを含むマクロを実行する原因となったイベントをキャンセルできます。 マクロ名は、BeforeUpdateOnOpenOnUnloadOnPrint など、イベント プロパティの設定です。

注: CancelEvent マクロ アクションは、Access Web アプリでは使用できません。

設定

CancelEvent アクションには、引数はありません。

解説

フォームでは、一般的に BeforeUpdate イベント プロパティを含む検証マクロで CancelEvent アクションを使います。 ユーザーがコントロールやレコードにデータを入力すると、Access はマクロを実行してからデータをデータベースに追加します。 マクロでデータが検証条件を満たさない場合は、CancelEvent アクションにより、更新プロセスが始まる前にキャンセルされます。

多くの場合は、このアクションを MsgBox アクションとともに使って、データが検証条件を満たさなかったことを示して、入力すべきデータの種類について有用な情報を提供します。

CancelEvent アクションでは次のイベントをキャンセルできます。

ApplyFilter

Dirty

MouseDown

BeforeDelConfirm

Exit

NoData

BeforeInsert

Filter

Open

BeforeUpdate

Format

Print

DblClick

KeyPress

Unload

Delete


注: CancelEvent アクションを MouseDown イベントとともに使うと、オブジェクトを右クリックしたときに発生するイベントのみをキャンセルできます。

コントロールの OnDblClick イベント プロパティ設定によって、CancelEvent アクションを含むマクロを指定すると、このアクションによって DblClick イベントがキャンセルされます。

キャンセル可能なイベントの場合、イベントの既定の動作は (つまりイベントが発生したときに Access によって一般的に行われることは)、そのイベントのマクロが実行された後で発生します。 既定の動作をキャンセルできるのはこのためです。 たとえば、テキスト ボックス内で挿入ポイントがある単語をダブルクリックすると、一般的には Access によってその単語が選択されます。 DblClick イベントのマクロでは、この既定の動作をキャンセルして、テキスト ボックスのデータに関する情報を含むフォームを開くなど、その他のアクションを実行できます。 キャンセルできないイベントの場合は、既定の動作が発生してからマクロが実行されます。

注: フォームの OnUnload イベント プロパティで、CancelEvent アクションを実行するマクロを指定しても、フォームを閉じることはできません。 CancelEvent アクションが実行される原因となる条件を訂正するか、マクロを開いて CancelEvent アクションを削除する必要があります。 フォームがモーダル フォームである場合、マクロを開くことはできません。

Visual Basic for Applications (VBA) モジュールで CancelEvent アクションを実行するには、DoCmd オブジェクトの CancelEvent メソッドを使います。

使用例

マクロを使ってデータを検証する

次の検証マクロでは、サプライヤー フォームに入力された郵便番号を確認します。 このマクロで、StopMacroMsgBoxCancelEventGoToControl の各アクションの使い方を示します。 条件式により、フォームのレコードに入力された国や地域および郵便番号を確認します。 郵便番号が、その国や地域の正しい形式になっていない場合は、メッセージ ボックスを表示して、レコードの保存をキャンセルします。 その後、郵便番号コントロールに戻って、誤りを訂正できるようにします。 このマクロは、サプライヤー フォームの BeforeUpdate プロパティに設定します。

条件

操作

引数: 設定

コメント

IsNull([CountryRegion])

StopMacro

CountryRegion が Null である場合は、郵便番号を検証できません。

[CountryRegion] In ("France","Italy","Spain") And Len([Postal Code]) <> 5

MsgBox

メッセージ: 郵便番号は 5 文字でなければなりません。

警告音: Yes

種類: Information

タイトル: 郵便番号エラー

郵便番号が 5 文字でない場合は、メッセージが表示されます。

...

CancelEvent

イベントがキャンセルされます。

GoToControl

Control Name: PostalCode

[CountryRegion] In ("Australia","Singapore") And Len([Postal Code]) <> 4

MsgBox

メッセージ: 郵便番号は 4 文字でなければなりません。

警告音: Yes

種類: Information

タイトル: 郵便番号エラー

郵便番号が 4 文字でない場合は、メッセージが表示されます。

...

CancelEvent

イベントがキャンセルされます。

GoToControl

Control Name: PostalCode

([CountryRegion] = "Canada") And ([Postal Code] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]")

MsgBox

メッセージ: 郵便番号が無効です。 カナダの郵便番号の例: H1J 1C3

警告音: Yes

種類: Information

タイトル: 郵便番号エラー

カナダの郵便番号が正しくない場合は、メッセージが表示されます。 (カナダの郵便番号の例: H1J 1C3)

...

CancelEvent

イベントがキャンセルされます。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×