• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:更新クエリが実行できず、困っています。)

質問:更新クエリが実行できず、困っています。

このQ&Aのポイント
  • 質問者は、更新クエリが実行できずに困っています。
  • 以前のアドバイスにも関わらず、更新クエリが実行できない状況になっています。
  • 具体的なクエリやデータベースの内容が示されており、修正するための指摘を求めています。

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

  • ベストアンサー
noname#182251
noname#182251
回答No.2

テーブル等の構造示されたので、試してみました。どうも集計クエリを使用して、更新をかけようとするとエラーになるようです。これがSQLの仕様なのか、Accessの仕様なのか良く判りません。 で、対策なのですが、迂回手段として、集計クエリから一旦テーブルに出力し、それを利用して更新をかければできます。 1.中継用のテーブルを作成 名称:入出庫集計テーブル フィールド:部品品番、出庫数の合計 2.中継用テーブるのクリア SQL文:DELETE 入出庫集計テーブル.* FROM 入出庫集計テーブル; 3.集計の出力 SQL文:INSERT INTO 入出庫集計テーブル ( 部品品番, 出庫数の合計 ) SELECT 入出庫テーブル.部品品番, Sum(nz([入庫数],0)-nz([出庫数],0)) AS 出庫数の合計 FROM 入出庫テーブル GROUP BY 入出庫テーブル.部品品番; 4.更新クエリ SQL文:UPDATE 部品マスターテーブル INNER JOIN 入出庫集計テーブル ON 部品マスターテーブル.部品品番 = 入出庫集計テーブル.部品品番 SET 部品マスターテーブル.現在庫 = [入出庫集計テーブル].[出庫数の合計]; あまりスマートとは思えませんが、実行できました。

cuxxx
質問者

お礼

ご回答ありがとうございます。 アドバイス通り作成しましたら、実行できました。 本当に助かりました。ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

update T_部品マスタ set T_部品マスタ.現在庫 = (select Q_在庫.在庫数 from Q_在庫 where T_部品マスタ.部品品番=Q_在庫.部品品番)

cuxxx
質問者

お礼

ご回答ありがとうございます。 またエラー表示されてしまいました…。 参考にさせて頂きます!

すると、全ての回答が全文表示されます。

関連するQ&A