#591 レコード単位での更新の開始を確認するには? フォーム、VBA

フォームの「ダーティー時/Dirty」イベントは、フォームのカレントレコードのいずれかのフィールドの内容が更新されようとしたときに発生します。

厳密には、あるレコード内において、任意の1つめのフィールドに最初の1文字が入力されたときに発生します。あるフィールドで更新が開始されたあとは、同じレコード内であれば他のフィールドを更新する際には発生しません。また1文字目が受け入れられたときは、2文字目以降の入力では発生しません。また別のレコードに移動されたときは、あらためて1文字目の更新操作がチェックされます。

またこのイベントプロシージャは「Cancel」という引数を持っており、イベントプロシージャ内でこれに「True」を代入することで、そのレコードに対するすべてのフィールドの更新操作の”開始”をキャンセルすることができます。

次のイベントプロシージャのコードは、ユーザーがあるレコードの変更を始めようとしたとき、毎回毎回更新開始の確認メッセージを表示させるようにしています。

Private Sub Form_Dirty(Cancel As Integer)
'フォームのダーティー時

  If MsgBox("このレコードの更新を開始しますか?", _
            vbYesNo + vbQuestion) = vbNo Then
    Cancel = True
  End If

End Sub

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved