• ベストアンサー

Accessで更新履歴情報を保存(表示)する方法を教えてください。

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

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

  • ベストアンサー
  • Watapo3
  • ベストアンサー率76% (33/43)
回答No.1

ご指名ありがとうございます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を使用して一つのサブフォームに更新情報を表示することもできますが、同一でない場合やフィールド名の関係もありますので、それぞれを二つのサブフォームに表示してみる方法ではまずいでしょうか(^ ^;

cas-jp
質問者

補足

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

その他の回答 (1)

  • Watapo3
  • ベストアンサー率76% (33/43)
回答No.2

ごめんなさい、m(_ _)m 回答後に気づいた問題です。 モジュール中の DoCmd.SetWarnings True の次の行に Exit Sub と、加えてください。 多分大丈夫だと思います。

cas-jp
質問者

補足

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

関連するQ&A

  • Access2007で従業員情報と顧客情報のデータを作り、請求書等を作

    Access2007で従業員情報と顧客情報のデータを作り、請求書等を作成しています。 そこで、入力フォームにデータを入力しているのですが、途中で担当者が変わったり、基本情報(住所・電話番号等)するので変わった場合、データを呼び出し、上書きしていっています。 ただし、この上書き作業は各担当者がやってますのでできれば、修正した箇所に色づけまたは、入力Fの背景ごと色を変えたいのです。また、変更年月日も自動的に入力されるようにしたいのですが可能でしょうか。 宜しくお願い致します。

  • アクセスデータのコピー禁止方法

    御質問させて頂きます。現在、PC本体にはPASSを設定しておりアクセス2007を使用し日々データの更新をしつつ累積データとして顧客管理をしていますが重要顧客情報などが有る為の悩みで、ファイルのコピーに対しては未対策なのです。この点も不安な為何か良い対策はないものかと考えております。何かアドバイスを頂けると有難いのですが。宜しくお願いします。 内容としましては、毎日の作業(入力)をし完了したデータをPC内のハードディスクに上書き保存しています。データコピー及び画面コピーなどに対して制限をかけたいのが目的です。

  • フォームで 保存ボタンを押して保存する方法【MS Access2000】

    初めて質問させて頂きます。宜しくお願いいたします。 MS Access2000を使用して会社の顧客管理をしていおり、 現在フォームに表示されたデータを更新・修正等をした場合 修正をした時点で、元のテーブルの情報も変更されてしまいます。 これを、修正等が終了して、例えば【保存】というボタンを作成し、 それを押して始めてテーブルに反映させるという仕様にしたいと 思っています。 ご回答・助言をなにとぞ宜しくお願いいたします。

  • Access 更新クエリについて

    Access365で顧客データを管理しようとしています。 「T_更新履歴」の情報を「T_顧客情報」へ更新クエリを用いて更新させたいです。 「T_更新履歴」には今回更新されたデータのみが入っており、更新のない項目については空白状態です。 例) 顧客ID/顧客名/電話番号/住所…    /   /00-0000-0000/…  今回は電話番号に更新があった為、電話番号のみが入力され、他項目は空白 こういったテーブルの場合、空白項目は更新せず、入力のある項目、今回の例では電話番号のみを更新するといった動きが理想なのですが、更新クエリで可能でしょうか。 ちなみに、毎月100件以上のデータ変更(更新)があり、「T_更新履歴」にはExcelデータを取り込んでデータを蓄積しています。 Accessをよく分かっておらず恐縮ですが、お知恵をお借りできると幸いです。 どうぞよろしくお願いいたします。

  • access 更新ボタンを作る

    よろしくお願いします。 仕様環境 WinXP access2002 今、accessで顧客管理システムを作っているのですが、 フォームに情報を入力したら「更新ボタン」押して、 情報を更新できるようにしています。 「更新ボタン」はマクロで”最新の情報に更新”を使い できたのですが、ボタンを押したときに何のリアクションもないので 気になります。(しっかり更新(保存)はされてますけど。) そこで質問なのですが、「更新ボタン」を押したときに 「更新しますか? ”はい””いいえ”」と確認の意味でも 選べるようにしたいのですがどうすればよいでしょう? MsgBox関数を使うとよいとみたいなのですが、 「更新しました、”OK”」とは出ますが、「~しますか?”はい””いいえ”」のように 選択する画面の出し方がわかりません。 もし、マクロでそのような方法がありましたら教えてください。 よろしくお願いします。

  • サーバーに保存しているデータが更新されていないようなんです

    会社であるデータ(Excelファイル)をサーバーに保存していて、複数の人でデータの更新の必要があるときに変更して上書き保存をしています。 最近、例えばAさんがデータを修正して上書き保存して閉じる→Bさんがデータを修正して上書き保存して閉じる→またAさんが開いてみると先ほどAさんが修正した内容が反映されていない(保存されていない)ということがあります。 Aさんがデータの修正中にBさんがファイルを開こうとすると「読み取り専用」になってしまうので、BさんはAさんが修正を終えるのを待っているわけですが、Aさんはきちんと上書き保存してからファイルを閉じているにも関わらず保存されていなかったりします。 どのような原因が考えられるでしょうか? 宜しくお願いします。

  • ACCESS2000で履歴をとる方法を教えてください。

    ACCESS2000初心者です。 顧客情報フォーム(フォームname=メイン)に担当者情報サブフォーム(フォームname=担当者_sb)を挿入(顧客コードで一致)して、その、サブフォーム内のどこか1つの項目が変更されたら、サブフォーム内すべての内容を「履歴」として残して、表示させたいのです。どなたかご存知の方、やさしくご教授ください。よろしくお願いいたします。

  • 顧客情報のデーターをレポートにすぐ反映させる方法

    会社で顧客管理のデーターベースを皆で共有ファイルで入力しています。 フォームで顧客情報を入力しています。このデータを使って、FAX送信用紙を印刷させていますが、すぐデーターが反映されません。一度別の場所(私の場合は別のフォーム)に移動してから、戻るとデータが保存されています。これを、すぐ反映するにはどうしたら良いのでしょうか? 分かる方、教えてください。 Access97を使用しています。・・・・Accessの初心者です。 宜しくお願い致します。

  • ACCESS2000で履歴を取った後、最新の履歴の日付を表示したい!

    ACCESS2000で、現在、顧客情報フォーム、(その中に)サブフォーム担当者情報があり(顧客コードが一致)、その履歴をテーブルに書き出した後、その履歴テーブルの更新日付を見て、最新の情報(最新更新情報)を取り出して、顧客情報フォームに(顧客コードの一致で)日付を表示するということがしたいのです。できますでしょうか?本当は、それと一緒に更新者名も取り出したいのですが、・・・。更新者名については、セキュリティーをかけると、そこに登録した名前で履歴を取ることができました。(今のところ確認できたのは、更新したところだけを履歴に残すバージョンで、テーブル全体の履歴を残すバージョンは、これからTRYしてみます。) 更新者の情報を獲得するには、セキュリティーを使用する方法しかないのでしょうか? と・・・、いっぱい質問を書いてしまいました。何卒よろしくお願い申し上げます。

  • イラストレータCS 更新しないですむ方法

    イラストレータCSですが、保存するたびにファイル名の横に 【更新済み】と出て、別ファイルで保存になってしまうのを しないですむ(上書き保存してくれる)方法はないでしょうか。 また、保存したファイルを開くと、ネームがすべて固定 されていて、触るごとに「更新しますか?」と出て、更新すると 一文で入力したはずのものが、文字がばらばらにされていて、 一文字一文字「更新しますか」と出てしまいます。アウトライン が勝手にかかってしまって、再度入力しなおさないといけない こともあります。 大変不便で困っています。設定の問題かと思いますが、変更する 方法を教えていただきたいと思います。よろしくお願いします。

    • ベストアンサー
    • Mac

専門家に質問してみよう