• 締切済み

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

  • h_jet
  • お礼率72% (13/18)

みんなの回答

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.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クエリについての参考書」があるので、それをご覧になって下さい。 やってみると意外と簡単で、慣れれば「デザインビューでマウスで操作して、変更後の文字をキー入力するだけ」でクエリが作れます。

h_jet
質問者

お礼

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

関連するQ&A

  • アクセス フィールド 500個

    アクセスでは、1テーブルでフィールド個数が255までと、制限があるようですが、1レコードに500個のフィールドが必要となりました。2個のテーブルを開いて、500個のフィールドに対して、レコードを単票形式で入力できる様にするには、どうしたらよろしいか?よろしくお願いいたします。

  • アクセス 前レコード内容を、新レコードにコピー

    アクセスで、テーブルに [日付] と [内容] のフィールドがあって、フォームでデータを入力する際、新しいレコードに[日付]を入力した後、[内容]の項目で、前回に最後のレコードで入力した [内容] のデータを、そのまま新しいレコードに入力したい。コピー貼り付けでもできるが、コマンドボタンを押して、1発で前回のデータをコピーしたい。どんなにしたらできるのですか?よろしくお願いします。

  • Accessの文字置換方法

    Access2002を使用しております。 「結果テーブル」というテーブルの<支店名>というフィールドの空白のレコードをすべて"空白"と言う文字に置換する作業を行っています。 現在は一度「結果テーブル」を開いた後に<支店名>フィールドを全部指定してから置換作業を行っているのですが、これをマクロを使用して自動処理にさせたいのですが、どうもうまくできません。どのようにすれば自動でできますか? VBAでもかまいません。 よろしくお願いします。

  • ACCESSでレコードのコピー

    ACCESS初心者です。 テーブルt_Aとt_Bがあり、t_Aを元にしたフォームがあるとします。 行いたいのはこのフォームでレコードを選択しボタンをクリックして t_Aの該当レコードのフィールドの値をt_Bのフィールドにコピー(新規追加)したいのです。 追加クエリでなんとかなるかなと思ったのですが思うようなクエリが作れないのです。 アドバイスをいただけませんでしょうか。 マクロ、VBAの利用方法についてはほぼわかっております。

  • ACCESSの・・・ ACCESSからEXCELにレコードをコピーしたいのですが

    こんにちは。 お世話になっております。 初歩的な質問なのかもしれませんが、どうぞ どなたか教えてくださいまし(汗) ようは、ACCESSからEXCELにレコードを コピーする場合に、なぜフィールドが一緒にコピー されてきてしまうのでしょうか??ってことなのです。 自分で入力した、レコードがありますよね? その区割りって言うのか普通にフィールドって言えばいいのか。 これが絶対に一緒にコピーされてきません? これが必要ないときはコピーしないように出来ないのでしょうか??

  • AccessのデータをVBを使って置換する

    (1)VisualBasic6.0を用いて、Access2000のデータベースに接続します。 (2)データベースの中のテーブル(テーブル名:T-カレンダー)にあるフィールド(フィールド名:コード)に保存されているデータの一部分を置換したい。(⇒途中のアルファベットを変更したい。)(例;置換前:123FFF789 置換後:123III789)  テーブルを直接開いて、フィールドにカーソルをあわせて、”編集メニュー”の『検索と置換』から行っても出来るのですが、Accessを触らないでVBから作ったフォームから変更(置換)をさせたい。  ◇フォームに2つテキストボックスを作って、「検索する文字列」と「置換後の文字列」を入力し、『変換』ボタンを押したら、データが置換される、という流れ。   一回きりの置換でなくて、何回でも同じフィールド内のデータを置換したい。   SQLのREPLACE関数を用いて出来るかな、とは思っているのですが、どのように作成すればよろしいのでしょうか。  また他のやり方でシンプルな方法があればお教えください。

  • EXCEL2000でデータ行コピーしてコピーした列のセルを置換する作業をカンタンにする方法をご教授ください

    EXCEL2000を使っています。 データとしては、A~BC列(シートによって列数は違います)くらいまでのシートが複数あります。 これらのシートのA列には必ず西暦4桁が入力されています。 Sheet1シートのA列に2007と入力されている複数行をコピーして、最終行に貼り付けて、貼り付けた行のA列を2004から2008までのデータに置き換えていく作業を行ってます。 今はコピーして貼り付けて、貼り付けた範囲指定で2007から2004へ置換の作業を繰り返しておりますが作業しなければいけないシート数が沢山あって苦慮しております。 シート毎でもブック毎でも構いません。 VBA等の解決策や方法等を何卒ご教授願います。

  • Access2000 レコードコピー

    Access2000について質問です。 クエリを使用して、 あるテーブルのレコードをコピーして、 同じテーブルに追加するにはどうしたらいいですか。 別のテーブルへ追加する方法はわかったのですが、 同じテーブルに追加する方法がわかりません。 すっごく単純な質問ですが、 よろしくお願いします。

  • アクセスのテキスト型フィールドの初期値

    アクセスのテーブルにテキスト型フィールド「●●日付」を作成しました。さらに、定型入力の方法として、日付(____/__/__)を指定しています。 このテーブルから、クエリでデータを取得する際、●●日付にデータを入力していないレコードのみを取得したいと思い、クエリの抽出条件として=""(ダブルクォーテーション)や=''(シングルクォーテーション)と記載したのですが、レコードが1件も抽出されません(もちろん●●日付にデータを入れていないレコードは複数あります)。一方で、<>""や<>''で、●●日付にデータが入力されているレコードを抽出しようとした場合は、●●日付にデータが入力されているレコードが抽出されます。 テキスト型フィールドにデータが入力されていないレコードを抽出するクエリはどのようにしたら作成できるのでしょうか?

  • Accessで複数(200件程)の置換

    Accessで一つのフィールドの文字を置換えたいです。 置換えるものが数件なら更新クエリで Replace(Replace([フィールド1],"あ","a"),"い","i") とネストすればいいだけだと思いますが、置換えたいものが200件程あり、置換元のレコードも17万件程あります。 どの方法が簡潔で負荷も少ないでしょうか? いろいろなサイトを見ましたが、結局どれがいいか分からずじまいです。 ベストな方法を教えて下さい。 よろしくお願いします。

専門家に質問してみよう