適用対象
Form オブジェクト |
Report オブジェクト |
Dirty プロパティを使用して、現在のレコードが最後に保存された後に変更されたかどうかを判断できます。 たとえば、レコードに対する変更が意図したものかどうかをユーザーにたずね、意図した変更ではない場合に、ユーザーが変更を保存せずに次のレコードに移動できるようにすることができます。 ブール型の値の読み取り/書き込みが可能です。
expression.Dirty
expression 必ず指定します。 [適用先] リスト内のいずれかのオブジェクトを返す式。
解説
Dirty プロパティでは、次の設定が使用されます。
設定 |
Visual Basic |
説明 |
True |
True |
現在のレコードは変更されています。 |
False |
False |
現在のレコードは変更されていません。 |
このプロパティは フォーム ビューと データシート ビューで使用できます。
このプロパティは、マクロまたは Visual Basic for Applications (VBA) コードを使用して設定または読み取りを行います。
レコードを保存すると、Microsoft Office Access 2007 によって Dirty プロパティは False に設定されます。 ユーザーがレコードに変更を加えると、プロパティは True に設定されます。
例
次の例では、データが変更されたときに、btnUndo ボタンを有効にしています。 テキスト ボックス コントロールの AfterUpdate イベントから UndoEdits() サブルーチンが呼び出されます。 有効な btnUndo ボタンをクリックすると、OldValue プロパティを使用してコンパイルの元の値が復元されます。
Sub UndoEdits()
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