プロが教えるわが家の防犯対策術!

Accessで、顧客管理を作っているのですが担当者が変更される事が多くあります。
この場合、データを上書き保存するのではなく、別ファイル(更新情報ファイル)に、変更前の情報を随時自動的に書き込んでいきたいのですが、どの様な方法があるか教えてください。

A 回答 (2件)

ご指名ありがとうございますm(_ _)m



えぇ、前回(No.164850)の3番目の方法が良いとの事で・・・・

まず、担当者の変更履歴用のテーブル(担当者履歴)、重要人物の変更履歴用のテーブル(重要人物履歴)を用意します。
テーブルの中身(フィールド)は、担当者情報・重要人物情報のテーブルをコピーして、それに変更日時フィールド(日付/時刻型)を加えたものとし、更新日時フィールドの規定値を「Now()」としてください。
もし、元のテーブルでオートナンバー型を使用している場合は履歴用テーブルでは数値型に変更してください。

次に前回記述したコードの内、strSQL=・・・以降の部分を変更します。
(担当者変更時)
strSQL = "insert into 担当者履歴 select * FROM 担当者情報 " & _
  "where 担当者ID = " & Me.担当者ID

(重要人物変更時)
strSQL = "insert into 重要人物履歴 select * FROM 重要人物情報 " & _
  "where 重要人物ID = " & Me.重要人物ID

上記の場合、担当者・重要人物の格納してあるテーブルをそれぞれ担当者情報(主キー:担当者ID)、重要人物情報(主キー:重要人物ID)と仮定してあります。適宜変更してください。
また、今回のケースでフィールド数が同一であればUNIONを使用して一つのサブフォームに更新情報を表示することもできますが、同一でない場合やフィールド名の関係もありますので、それぞれを二つのサブフォームに表示してみる方法ではまずいでしょうか(^ ^;

この回答への補足

お返事ありがとうございます。本当にありがとうございます(^o^)丿
言われたように変更しました。すると、担当者履歴テーブルのの主キーを「担当者ID」にしたままだと、「重複なし」になっている為に、最初の1回しか履歴がとれず、2回目からは書き込んでくれませんでした(T_T)そこで、主キーをはずして、「重複あり」にすると、履歴がとれた!(^○^)と思ったら、今度は変更をした分だけ書き込まれてしまいました。(例えば、4箇所訂正したら4レコード同じ履歴が書き込まれる)(T_T)。何か良い方法はありますでしょうか?(@_@)

補足日時:2001/11/19 00:57
    • good
    • 0

ごめんなさい、m(_ _)m


回答後に気づいた問題です。

モジュール中の
DoCmd.SetWarnings True
の次の行に
Exit Sub

と、加えてください。
多分大丈夫だと思います。

この回答への補足

ありがとうございました。
無事!履歴が取れるようになりました。ありがとうございますm(__)m
そして、そして、さらにお伺いしたいことがあります。
ですので、新規の質問で私を見つけてください!m(__)m
よろしくお願いいたします(@_@)

補足日時:2001/11/19 12:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A