適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

適用対象

Form オブジェクト

Report オブジェクト

Dirty プロパティを使用して、現在のレコードが最後に保存された後に変更されたかどうかを判断できます。 たとえば、レコードに対する変更が意図したものかどうかをユーザーにたずね、意図した変更ではない場合に、ユーザーが変更を保存せずに次のレコードに移動できるようにすることができます。 ブール型の値の読み取り/書き込みが可能です。

expression.Dirty

expression 必ず指定します。 [適用先] リスト内のいずれかのオブジェクトを返す式。

解説

Dirty プロパティでは、次の設定が使用されます。

設定

Visual Basic

説明

True

True

現在のレコードは変更されています。

False

False

現在のレコードは変更されていません。

このプロパティは フォーム ビューと データシート ビューで使用できます。

このプロパティは、マクロまたは Visual Basic for Applications (VBA) コードを使用して設定または読み取りを行います。

レコードを保存すると、 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

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。