ComboBox.Dirty イベント (Access)
Dirtyイベントが発生する、指定したコントロールの内容が変更されたとき。
構文
式。ダーティ (キャンセル)
式ComboBox オブジェクトを表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
Cancel | 必須 | 整数型 (Integer) | Dirty イベントが発生したかどうかは、設定によって決まります。 引数 Cancel を True (1) に設定すると、Dirty イベントが取り消されます。 |
注釈
たとえば、テキスト ボックスやコンボ ボックスに文字を直接入力したときや、マクロまたは Visual Basic を使ってテキスト ボックスやコンボ ボックスの Text プロパティの設定値を変更したときに発生します。
マクロや Visual Basic でフォームのレコードを変更しても、Dirty イベントは発生しません。 レコードに直接データを入力するか、コントロールの Text プロパティを設定する必要があります。
Dirty イベントは連結フォームにのみ適用され、非連結フォームまたはレポートには適用されません。
このイベントが発生したときに、マクロまたはイベント プロシージャを実行するには、 OnDirty プロパティをマクロ名または "[Event Procedure]"/"[イベント プロシージャ]" に設定します。
Dirty イベントが発生したときにマクロまたはイベント プロシージャを実行することで、レコードを変更できるかどうかを判断できます。 また、編集の権限があるかどうかを確認するメッセージを表示させることもできます。
キーボードを使用してレコード内のデータを変更すると、 Dirty イベントなどのコントロール イベントに加えてキーボード イベントが発生します。 For example, if you move to a new record and type an ANSI character in a text box in the record, the following events occur in this order:
KeyDown → KeyPress → BeforeInsert → Dirty → KeyUp
レコードの BeforeUpdate イベントと AfterUpdate イベントは、レコードに新しいデータまたは変更されたデータを入力し、別のレコードに移動した後 (または [レコード] メニューの [レコードの保存] を選択)、したがってレコードの Dirty イベントの後に発生します。
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 のサポートおよびフィードバックを参照してください。