CancelEvent 巨集指令

您可以使用 CancelEvent 巨集指令,取消導致 Access 執行包含此巨集指令之巨集的事件。 巨集名稱是事件屬性的設定,諸如 BeforeUpdateOnOpenOnUnloadOnPrint 等。

附註: Access Web 應用程式不提供 CancelEvent 巨集指令。

設定

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 ("法國","義大利","西班牙") And Len([郵遞區號]) <> 5

MsgBox

訊息:郵遞區號必須為 5 個字元。

嗶嗶聲:

類型:資訊

標題:郵遞區號錯誤

如果郵遞區號不是 5 個字元,則會顯示一則訊息。

...

CancelEvent

取消事件。

GoToControl

控制項名稱:PostalCode

[CountryRegion] In ("澳洲","新加坡") And Len([郵遞區號]) <> 4

MsgBox

訊息:郵遞區號必須為 4 個字元。

嗶嗶聲:

類型:資訊

標題:郵遞區號錯誤

如果郵遞區號不是 4 個字元,則會顯示一則訊息。

...

CancelEvent

取消事件。

GoToControl

控制項名稱:PostalCode

([CountryRegion] = "加拿大") And ([郵遞區號] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]")

MsgBox

訊息:郵遞區號無效。 加拿大郵遞區號範例:H1J 1C3

嗶嗶聲:

類型:資訊

標題:郵遞區號錯誤

如果郵遞區號不是加拿大的正確格式,則會顯示一則訊息。 (加拿大郵遞區號範例:H1J 1C3)

...

CancelEvent

取消事件。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×