使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

您可以使用 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

取消事件。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?
按下 [提交] 後,您的意見反應將用來改善 Microsoft 產品與服務。 您的 IT 管理員將能夠收集這些資料。 隱私權聲明。

感謝您的意見反應!

×