Dirty事件發生於指定控制項的內容變更時。
語法
表達。骯髒 (取消)
詞 代表 WebBrowserControl 物件的變數。
參數
| 名稱 | 必要/選用 | 資料類型 | 描述 |
|---|---|---|---|
| Cancel | 必要 | Integer | 設定決定 Dirty 事件發生於。 將 Cancel 引數設定為 True (1) 會取消 Dirty 事件。 |
傳回值
無
註解
此事件的範例包括直接在文字方塊或下拉式方塊中輸入字元,或來使用巨集或 Visual Basic 變更控制項的 Text 屬性設定。
使用巨集或 Visual Basic 中修改表單內的記錄不會觸發此事件。 您必須將資料直接輸入記錄或設定控制項的 Text 屬性。
此事件僅適用於結合表單,並不適用於未結合表單或報表。
若要發生此事件時執行巨集或事件程序,將 OnDirty 屬性設定為巨集名稱或 [事件程序]。
透過在 發生「髒」 事件時執行巨集或事件程序,您可以判斷是否可以變更記錄。 您也可以顯示訊息並請求編輯權限。
使用鍵盤變更記錄中的資料,除了控制事件 ( 例如 Dirty 事件) 之外,還會導致鍵盤事件發生。 例如,如果您移到一個新的記錄,並在記錄的文字方塊中輸入一個 ANSI 字元,就會依次發生下列事件:
KeyDown → KeyPress → Before插入髒→→ KeyUp
記錄的 BeforeUpdate 和 AfterUpdate 事件會在您在記錄中輸入新的或變更的資料,然後移至另一筆記錄 (,或在 [記錄] 功能表) 選擇 [儲存記錄] 之後,因此會在記錄的 [髒] 事件之後發生。
取消 Dirty 事件會導致對目前記錄的變更復原。 相當於按下Esc鍵。
範例
下列範例會在資料變更時啟用 btnUndo 按鈕。 UndoEdits ( ) 子常式是從文字方塊控制項的 Dirty 事件呼叫。 按兩下已啟用的 btnUndo 按鈕,會使用 OldValue 屬性還原控制項的原始值。
Private Sub Form_Dirty()
If Me.Dirty Then
Me!btnUndo.Enabled = True ' Enable button.
Else
Me!btnUndo.Enabled = False ' Disable button.
End If
End Sub
Sub btnUndo_Click()
Dim ctlC As Control
' For each control.
For Each ctlC in Me.Controls
If ctlC.ControlType = acTextBox Then
' Restore Old Value.
ctlC.Value = ctlC.OldValue
End If
Next ctlC
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。