- 締切済み
ACCESSでコピーしたレコードのフィールド置換作業の繰返しを簡素化したいです
ACCESS2000を使っています。テーブルには必ず「Nenndo」というフィールド名(数値型十新型)で西暦4桁が入力されています。(このフィールドはキーにもインデックスにもなってません)たとえば、 T_M001テーブルのNendoフィールドに2007が入力されたレコードが340件 T_M002テーブルのNendoフィールドに2004が入力されたレコードが823件 こんな感じでNendoフィールドがあるテーブルが沢山あります。 これらのテーブルのNendoフィールドに格納されているレコードをコピー置換作業して2004から2008までのデータを作成したいです。 T_M001であれば2007が入力されてるレコードをコピーして、貼付たレコードNendoフィールドの2007を2004へ置換、また2007のレコードをコピーして2005へを繰り返の作業してます。レコード数は340件が1360件増えて1700件。 テーブルが沢山あって作業に苦慮してます。 ACCESSのモジュールでもマクロでも構いませんので対応策等ご教授願います。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chie65536
- ベストアンサー率41% (2512/6032)
更新クエリと追加クエリを使えば楽です。 1.オリジナルのテーブルを、作業用テーブルに「中身のレコードごと」コピーする。T_M001テーブルはT_M001COPYテーブルに、T_M002テーブルはT_M002COPYテーブルにコピー 2.T_M001COPYテーブルのNenndoフィールドの値を、更新クエリを使って「2004」に更新。作ったクエリを保存しておく。 3.T_M001COPYテーブルの全レコードを、追加クエリを使ってT_M001テーブルに追加。作ったクエリを保存しておく。 4.上記2.で作っておいた更新クエリの「2004」を「2005」に書き換え、T_M001COPYテーブルのNenndoフィールドの値を、更新クエリを使って「2005」に更新。 5.上記3.で作っておいた追加クエリを実行。 6.これを「2006」「2008」まで繰り返す(オリジナルの「2007」は元から入ってるから飛ばす) 7.来年に「2009」も同じ事をするだろうから、T_M001COPYテーブルは消さずに来年まで取っておく。 8.同じ方式で、T_M002も作業する。 クエリについてここで説明するのは「スペースが足りない」ですし、書店に行けば「Accessクエリについての参考書」があるので、それをご覧になって下さい。 やってみると意外と簡単で、慣れれば「デザインビューでマウスで操作して、変更後の文字をキー入力するだけ」でクエリが作れます。
お礼
ご教授いただいた回答にて淡々と置換作業をやることにしました。 ありがとうございました。