#219 データ内容が変更されたかチェックする方法 フォーム、VBA

フォームのテキストボックスにおいては、すでに入力されているデータとまったく同じデータを再入力した場合でも、変更時イベントや変更前処理イベントが発生しますので、そのイベントが発生したということだけでは、本当にデータ内容までが変更されたかどうかは判定できません。

そこで、同じデータが再入力されたか、あるいは異なるデータが入力されたかをチェックするには、テキストボックスの"OldValue"プロパティ"Value"プロパティを比較します。"OldValue"プロパティには変更前の値が格納されています。また"Value"プロパティには変更後の値が格納されています。
Private Sub 番号_BeforeUpdate(Cancel As Integer)
'番号の更新前処理

  'データが変更されたか確認
  If IsNull(Me!番号.OldValue) Or (Me!番号.Value <> Me!番号.OldValue) Then
    Msgbox "データが変更されました!"
  Else
    Msgbox "データが入力されましたが、内容は変更されていません!"
  End If

End Sub

データが変更された場合のメッセージ
※IsNull関数によってOldValueがNULLかどうか調べているのは、新規レコードが追加された場合への対処です。新規レコードの場合には、常に"OldValue"プロパティはがNULL値になりますので、新規にレコード追加された場合も、上記プログラムでは、「データが変更されました!」というメッセージが表示されることになります。
| Index | Prev | Next |



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