MS Access 2016 UPDATEでJOINした時のエラー対処法「更新可能なクエリであることが必要です。」
2016/10/17
2つのテーブルをJOINしてUPDATE(更新)しようとしたら「更新可能なクエリであることが必要です」のクエリエラーが発生しました。
クエリは以下の通りで全く問題無いです。何が問題なのか調べてみたら分かりました。
UPDATE TableA
INNER JOIN TableB ON TableA.id = TableB.id
SET TableA.name = TableB.name;
やりたいこと
下記にある2つのテーブル(TableAとTableB)をid列でJOINして、TableAのname列をTableBのname列にある値で置き換えたい。
※TableBはExcelファイルのリンクテーブルを元に作成したSELECTクエリです。
TableAのデータは以下の通りです。
- id, name, date
- 1, abc, 2016/1/1
- 2, def, 2016/1/2
- 3, ghi, 2016/1/3
- ...
TableBのデータは以下の通りです。
- id, name, code
- 2, def, 1583929
- 4, klm, 9484739
- 8, nop, 5758498
- ...
エラーの原因
クエリデザインで作成したリンクテーブルのSELECTクエリをJOINすることができないみたいです。
SELECTクエリがダメということなので、わざわざテーブルを用意してそこにデータを流し込みます。 その新規作成したテーブルをJOINさせたらエラー無くUPDATEができました。不便。
クエリは以下の通りです。この手順でUPDATEは出来ましたが、テーブル同士のJOINじゃないとUPDATEしてくれないので1つステップが余計に必要になります。
1.SELECT * INTO TableC FROM TableB(TableBのSELECTクエリの結果をTableCに入れます)
2.UPDATE TableA INNER JOIN TableB ON TableA.id = TableB.id SET TableA.name = TableB.name;(再度UPDATE文を実行)
スポンサーリンク
スポンサーリンク