• ベストアンサー

別のテーブルのレコードを転記したい

テーブルA:職員番号,氏名,住所 テーブルB:職員番号,給与,住所 このときに2つのテーブルの職員番号が一致するものについてテーブルAの住所をテーブルBの住所に転記(更新)したいのですが、更新クエリとかでできるものですか?

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

  • ベストアンサー
  • AkiraND
  • ベストアンサー率52% (10/19)
回答No.2

更新クエリを使った例です。 ・まずは選択クエリ画面で、テーブルAとテーブルBを表示させます。 ・テーブルAとテーブルBの職員番号をドラッグ&ドロップで結びます。 ・テーブルBの住所を(選択)フィールド欄に出します。 ・クエリの種類を選択へ変更して ・レコードの更新欄を[テーブルA]![住所]とします。 ・これでクエリーを実行すればテーブルBの住所欄が埋まるはずです。 更新クエリは戻せないので、バックアップデータを作っておくなど、細心の注意でお願いします。 他にもやりかたはあるかもしれませんが・・・

s-holmes
質問者

お礼

おかげさまでテスト成功しました。本番は10,000件くらいのデータなので緊張しますが、バックアップ取ってやってみたいと思います。ありがとうございました。

その他の回答 (1)

noname#166310
noname#166310
回答No.1

職員番号と住所と氏名のみのテーブルを別に作り、「給与テーブル」とリレーションを組む方法ではダメなのですか? 2つのテーブルに同一のデータがあるのに、別々のテーブルにしているのはどうしてなんでしょう?

s-holmes
質問者

補足

実は、テーブルBのデータの一部を消してしまったので、これを埋めるのが目的なのです。というわけで、実際には、この例のようなフィールドにしてはいないのです。補足させていただきました。

関連するQ&A

  • テーブルの一部を別のテーブルを使って更新したい

    テーブルA…[住所]、[氏名]、[電話番号]、[携帯番号]、[変更日] テーブルB…[氏名]、[自宅電話・携帯番号]、[変更日] Bの[氏名]と[自宅電話・携帯番号]が、Aの[氏名]と[電話番号]、[携帯番号]に一致した場合、Aの[変更日]がBの[変更日]に更新されるようにしたいです。 以前、似たような質問で回答して頂いたのですが、条件が二つになり指定方法が上手くいかなくなってしまいました。 お手数お掛けしますが回答宜しくお願いします。

  • テーブルの結合?

    accessのテーブル2つを1つのテーブルにする方法を教えていただけないでしょうか。 《テーブルA》 氏名,住所,電話番号,・・・・ 《テーブルA》 氏名,健康保険番号,雇用保険番号,・・・・ 氏名は、テーブルAとテーブルBで一致しています。 とりあえず、1個のテーブルにしてしまいたいのですが。

  • 複数のテーブルから複数条件で新規テーブルへ抽出するには?

    こんにちわ。 Windows2000、Access2000という環境下で、 住所録の統合をしようとしています。 簡単な構成は、前任者が、グループ関連会社別に住所録のmdbを作っており、各テーブルのフィールドで主要なものは、「通し番号(各mdbごと)」「氏名」「会社名」「住所」です。 ここで、最終的にテーブルを一つにまとめれば完了としたいところなのですが、 2002年夏の時点での住所録A.mdb 2003年冬の時点での住所録B.mdb 2003年春の時点での住所録C.mdb とあり、それぞれにBの時点での新規入力・(住所等の)更新、Cの時点での新規入力・更新があるのです。 BはAを元に作られており、CはBを元に作られています。 ダブっている部分があるのです。 そこで、AとBを比較してAの中で「氏名」、「会社名」が同じもの以外と、Bのデータを新しいDBのテーブルへ、 新しくできたDBのテーブルとCのテーブルとを比較して、「氏名」「会社名」が同じものは、既存のレコードを消去してCのデータを追加するということをやりたいのです。 つまり、BやCでの更新・新規入力をうまく反映させた形の住所録にしたいのです。 Access自体の使い方に不慣れなもので、この作業がAccessのクエリ等の組み合わせでできるのか、それともSQLやVBAを駆使しないと無理なのかの判断もつきません。 どなたか参考になりそうな操作やSiteを知っていましたら、 教えてください。 よろしくお願いします。

  • 一致するレコードを削除したい。

    質問します。ACCESS(office2000)を使って下記の様に実行したいのですが。 テーブルA         テーブルB 商品名、 管理番号    単価、 管理番号 パソコンA   101      \1,200  112 パソコンB  102       \1,300  102 パソコンC  103      \1,500  123           ↓ テーブルA 商品名、  管理番号 パソコンA  101 パソコンC  103 削除クエリを実行して管理番号が一致するレコードをテーブルAから削除したいのですが、削除クエリどうやって設定すればいいのでしょうか。どうかご教授をお願い致します。

  • Access]2つのテーブルを比較してフィールドの一部が一致したデータを抽出

    2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出したいと考えております。 テーブル名とフィールドは以下のとおりです。 ==================== テーブル名「名簿A」 氏名 電話番号 住所 メールアドレス ==================== テーブル名「名簿B」 姓 名 電話番号 住所 メールアドレス ==================== たとえば、この2つの名簿をメールアドレスで一致したものを抽出する場合は選択クエリのデザインビューで「名簿A」のフィールドを読み込ませ、 メールアドレスフィールドの抽出条件として Like [名簿B].[メールアドレス] を入れれば抽出ができたのですが、メールアドレスは、名簿ごとに記入されていたりしなかったりするので、名前での一致を行いたいと思っています。 ここで問題なのが、名簿Aは「氏名」で入力されているのに対し、名簿Bでは「姓」と「名」が別フィールドになっております。 そこで自分なりにやってみたのが、選択クエリのデザインビューで「氏名」のフィールドの抽出条件として Like (*[名簿B].[姓]*) を設定するものでした。 これがうまくいけば最終的には Like (*[名簿B].[姓]*) And Like (*[名簿B].[名]*) という風にして、名簿Aの「氏名」フィールドに名簿Bの「姓」も「名」も入っているものを抽出できるかな?と考えたのですが、上記のように入力すると、自動的に Like ("*[名簿B].[姓]*") となってしまい、何も抽出されなくなってしまいました。 このような方法では希望する抽出は行えないのでしょうか? お分かりのかた、よろしくお願いいたします。

  • ACCESS テーブルを見比べて、一致しないレコードを追加したいです

    ACCESSで、以下のようにデータを追加をしたいです。 別々のテーブルで、データの一致しないものだけ追加したいです。 どのようにすればよいのでしょうか? Aテーブル、Bテーブル共に入力項目は全て同じです。 よろしくお願いします。  Aテーブル      Bテーブル    名前 個人データ  名前 個人データ   ・鈴木 ***     ・近藤 ***    ・近藤 ***     ・伊藤 ***   ・渡辺 ***     ・鈴木 *** 求める答え   ・鈴木 ***     ・近藤 ***    ・渡辺 ***   ・伊藤 *** たぶん、不一致クエリでBテーブルの伊藤さんだけ取り出して、Aテーブルに追加するという方法がやりやすいのでしょうか? よろしくお願いします。

  • ACCESS テーブルを見比べて、一致したレコードを抽出したいです

    ACCESSで、以下のデータ抽出をしたいです。 別々のテーブルで、番号の一致したものだけ取り出したいです。 どのようにすればよいのでしょうか? よろしくお願いします。  Aテーブル     Bテーブル   ・001 ***     ・002 ***    ・002 ***     ・004 ***   ・003 ***     ・001 *** 求める答え   ・001 ***     ・002 *** 

  • テーブルAにテーブルBのレコードをすべて追加

    いつもお世話になっております。 現在、テーブルAとテーブルB(エクセルのリンクテーブル)の2つのテーブルがあり、テーブルBのレコードをすべてテーブルAに追加するという追加クエリを作りました。 が、「0件が追加されました。」とメッセージが出てしまい、実際に追加することができません。 フィールド:国番号 テーブル:テーブルB 並べ替え: レコードの追加:テーブルA.国 抽出条件: 条件は以上のようなものを、各カラムについて書きました。 テーブルAとテーブルBが逆かな?と思い逆にもしてみましたが、同じ結果となりました。 そもそも追加クエリというのは、このような目的で使うものではないのでしょうか? どなたかご教授願います。 以上、よろしくお願いいたします。

  • access クエリで集計した数値を別クエリで使いたい

    access2003で2000ファイル形式で以下のものを作っています。 テーブル「A」(フィールドは登録番号(主キー)、 書名) 「B」(登録番号(主キー)、 書名) がある。Aの「登録番号の最大値」(100とする)をクエリ(クエリ名「集計クエリ」)で集計して得た。 テーブルBの登録番号(1~30とする)を更新クエリで(1+100 ~ 30+100)に更新したい。そこでデザインビューで登録番号フィールド(テーブルB)の「レコードの更新」欄にビルダーで「[B]![登録番号]+[集計クエリ]![登録番号の最大値]」と入力して実行したら 実行できなかった。(仕方ないので「[B]![登録番号]+100」として実行したら更新できた。)今後もあるので「集計クエリ」で得た値を直接呼んで、更新クエリを実行したいのだが・・・。 わかりにくい質問で恐縮です。ご理解頂けたならば、ご教授ください。

  • Accessで BテーブルのフィールドをAフールドに書き換えたい。

    初心者ですが宜しくお願い致します。 Aテーブル →[氏名],[名前] Bテーブル →[氏名],[結婚後氏名] (1)上のようなテーブルがあります。クエリで、AテーブルとBテーブルの[氏名]フィールドをキーにしてリレーションを組み、A,Bテーブルのフィールド全てを表示させます。 (2)(1)で抽出されたデータだけ、Aテーブルの[氏名]フィールドをBテーブルの[結婚後氏名]フィールドに書き換えたいのですが・・・・ なにかよい方法はありますでしょうか。 詳しい方、教えてください。 宜しくお願い致します。

専門家に質問してみよう