Accessで更新クエリを使う

table_oldというテーブルとtable_newというテーブルがあるとします。
table_oldの内容valueの値をtable_newの内容valueの値に置き換えるには更新クエリを使います。
Access2007、Access2013で確認しました。

table_old
id value
1 10
2 20
3 30
4 40
table_new
id value
2 200
4 400

手順

  1. 作成-その他-クエリデザインをクリック。
  2. table_oldとtable_newを追加。
  3. お互いのキーであるtable_oldのidとtable_newのidを結びつけるために一方から一方にドラッグ。線で結ばれます。
  4. デザイン-クエリの種類-更新をクリック。クエリデザイングリッドに「レコードの更新」という行が出てきます。
  5. table_oldのvalue(更新したい列)をダブルクリック。下の表に表示されます。
  6. クエリデザイングリッドのレコードの更新の行に「[table_new].[value]」と入力。これは手で入力するしかないようです。※右クリックからビルドを選択して「式ビルダー」ダイアログを開く。式の要素でテーブルを選択、式のカテゴリでフィールドを選択する。式の値の「<値>」をダブルクリックすると上のテキストエリアに式が表示される。「OK」をクリックするとダイアログが閉じレコードの更新の行に式が入力される。Access2013で確認。
    フィールド: value
    テーブル: table_old
    レコードの更新: [table_new].[value]
  7. デザイン-結果-実行をクリック。

実行結果

table_oldのid=2のvalueが「200」に、id=4のvalueが「400」に更新されます。

table_old(更新後)
id value
1 10
2 200
3 30
4 400

SQL

SQLならばこんな感じです。

UPDATE table_old
INNER JOIN table_new
ON table_old.id = table_new.id
SET table_old.value = table_new.value;

コメント

タイトルとURLをコピーしました