• ベストアンサー

ACCESSでデータ変更箇所が分かるようにする方法

ACCESS初心者です。 顧客住所録管理をしていて、フォームで既存レコードのどこかのフィールドを変更したら、”変更日時”のフィールドに日時が入るように指定しました。 (全てのフィールドのプロパティ更新後処理に           Me![更新日時].Value = Now()     と設定。) 変更日時で抽出をかければ特定の日以後に変更のあったデータを抽出してくれるの ですが、どのフィールドが変更になったかは分かりません。 そこで、変更があったフィールドに色をつけるということはできないものかと考えました。 フォームの条件付書式で条件が真のときに色を塗るっていうのがありましたよね。 あんな感じのことがしたいのですが・・・。 各フィールドの更新後処理になにかVBAを付け加えればいいのでしょうか? 初心者なもので質問が的を得ていないのかもしれませんが、どなたかご教授頂ける方、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#1296
noname#1296
回答No.1

単票フォームの場合ですが 各フィールドの更新後イベントで フィールド名.OldValueプロパティで変更前の値を取得できます。これと現在の値を比較して異なっていればフィールド名.BackColorで背景色を変更するっていうのはどうでしょう? 帳票フォームの場合は使えませんが。

fujimeg
質問者

お礼

ありがとうございました。 早速チャレンジしてみます。

その他の回答 (1)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

これは、レコードの更新日時のほかに、各フィールドことに更新日時を保存するしかないでしょうね。 各フィールドの更新後処理に、 sub ほげ_Afterupdate()  me![ほげ更新日時] = now() end sub みたいなコードを書いてやって、これが指定日以降のものだけを色換えするように条件付書式を設定してやると。 それ以外の方法としては、フォームのAfterUpdate時に、#1,CHOROLYNさん方法で更新されたフィールドを特定して、更新ログのようなものを作成するとか。 ちなみに、前者は作成するのが簡単ですが、柔軟性に欠けます。後者は、作るのにそれなりの労力を必要としますが、より詳しい変更履歴を得ることが出来ます。

fujimeg
質問者

お礼

回答ありがとうございました。 どちらの方法をとるかもう少し検討してみます。

関連するQ&A