• 締切済み

ACCESSで一括レコード更新

あるテーブルのレコードを、別のテーブルのレコードで更新したいです。具体的には、 二つのテーブルは同じフィールドを持っています。 フィールド名はID、名前、住所、電話で構成されています。 テーブルA  001 山田 東京 123456  002 田口 千葉 234567  003 鈴木 埼玉 345678  004 斉藤 佐賀 456789  005 上野 大阪 567890 テーブルB  003 鈴木 長野 345678  004 斉藤 佐賀 890123  008 野口 京都 090909 テーブルAとBでIDが一致するレコードだけテーブルAのレコード をそっくり入れ替えるにはどうしたらいいでしょうか。 この場合、003と004のレコードだけ更新します。 テーブルAのIDは主キーでオートナンバー型になっています。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

No1No3です。 すみません。訂正します。 自動ではフィールド名 入りませんでした。 [テーブルB!氏名] と手入力しかないみたいです。 前回 過去に一度作った更新クエリでクエリの種類変更したら 変更前を覚えているのか自動ででましたが新規に作ってみたら 出ませんでした。すみませんです。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

No1です。 先ほど確認してみましたが、 テーブルAとテーブルBで更新したいフィールドの名前が同じであれば 選択クエリを更新クエリに変更した時点で自動で名前が入りました。 それ以外では、手入力しかないと思います。 テーブルA!氏名 と テーブル名とフィールド名の間に!マークで区切ります。

konbannwa
質問者

お礼

再確認ありがとうございます。 試してみましたが、更新クエリに変更するだけでは自動的には 入りませんでした。もしかしてバージョンが違うのでしょうか。 こちらはACCESS2003です。 もし同じであれば根本的にやりかたが違うのでしょうか。 私は、選択クエリのデザインビューで、ID同士を結合し、 結合プロパティで「両方のテーブルが同じ行を含める」にして、 「フィールド」欄にテーブルAのフィールドを全てドラッグし、 クエリの種類を更新に変えます。でも、「レコードの更新」欄 には何も入りません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

こんなの更新クエリの基本的な例題ではないですか。 ここに質問する前に、アクセスの本やWEBで勉強し、やってみて、行き詰まった点について質問のこと。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

更新クエリについて調べてみてください。 手順ですが 1 選択クエリの作成   テーブルAとテーブルBのIDでリレーション結合して   リレーションのプロパティでIDが一致するテーブルAが選択できる   クエリを作成します。 2 更新クエリに変更する   作成したクエリを右クリックしてクエリの種類を更新クエリに変更   レコードの更新にテーブルBのフィールドを記載します。 3 作成した更新クエリを実行します。 失敗したときの為にファイルをコピーしておいて下さい。

konbannwa
質問者

お礼

ご丁寧にありがとうございます。 ACCESS初心者で本を読んでも分からないレベルです。 もう少しお付き合いいただけると助かります。 >2 更新クエリに変更する >  作成したクエリを右クリックしてクエリの種類を更新クエリに変更 >  レコードの更新にテーブルBのフィールドを記載します。 →ここの部分ですが、テーブルのフィールド数は実際には30くらいあって、全部を記載するのは大変です。 やはり、1つずつ記載する方法しか無いのでしょうか。

関連するQ&A

専門家に質問してみよう