みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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のモジュールでもマクロでも構いませんので対応策等ご教授願います。

投稿日時 - 2008-02-01 14:04:09

QNo.3733955

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

更新クエリと追加クエリを使えば楽です。

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クエリについての参考書」があるので、それをご覧になって下さい。

やってみると意外と簡単で、慣れれば「デザインビューでマウスで操作して、変更後の文字をキー入力するだけ」でクエリが作れます。

投稿日時 - 2008-02-01 14:29:31

お礼

ご教授いただいた回答にて淡々と置換作業をやることにしました。
ありがとうございました。

投稿日時 - 2008-02-12 13:54:23

あなたにオススメの質問