- ベストアンサー
ACCESSでデータ変更箇所が分かるようにする方法
ACCESS初心者です。 顧客住所録管理をしていて、フォームで既存レコードのどこかのフィールドを変更したら、”変更日時”のフィールドに日時が入るように指定しました。 (全てのフィールドのプロパティ更新後処理に Me![更新日時].Value = Now() と設定。) 変更日時で抽出をかければ特定の日以後に変更のあったデータを抽出してくれるの ですが、どのフィールドが変更になったかは分かりません。 そこで、変更があったフィールドに色をつけるということはできないものかと考えました。 フォームの条件付書式で条件が真のときに色を塗るっていうのがありましたよね。 あんな感じのことがしたいのですが・・・。 各フィールドの更新後処理になにかVBAを付け加えればいいのでしょうか? 初心者なもので質問が的を得ていないのかもしれませんが、どなたかご教授頂ける方、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
単票フォームの場合ですが 各フィールドの更新後イベントで フィールド名.OldValueプロパティで変更前の値を取得できます。これと現在の値を比較して異なっていればフィールド名.BackColorで背景色を変更するっていうのはどうでしょう? 帳票フォームの場合は使えませんが。
その他の回答 (1)
- ARC
- ベストアンサー率46% (643/1383)
これは、レコードの更新日時のほかに、各フィールドことに更新日時を保存するしかないでしょうね。 各フィールドの更新後処理に、 sub ほげ_Afterupdate() me![ほげ更新日時] = now() end sub みたいなコードを書いてやって、これが指定日以降のものだけを色換えするように条件付書式を設定してやると。 それ以外の方法としては、フォームのAfterUpdate時に、#1,CHOROLYNさん方法で更新されたフィールドを特定して、更新ログのようなものを作成するとか。 ちなみに、前者は作成するのが簡単ですが、柔軟性に欠けます。後者は、作るのにそれなりの労力を必要としますが、より詳しい変更履歴を得ることが出来ます。
お礼
回答ありがとうございました。 どちらの方法をとるかもう少し検討してみます。
お礼
ありがとうございました。 早速チャレンジしてみます。