Microsoft Access 掲示板

テーブルの引き算とテーブルの更新 / 2

3 コメント
views
4 フォロー
2

1 入庫テーブルをグループ化して個数の合計を出す(選択クエリ)
2 出庫テーブルをグループ化して個数の合計を出す(選択クエリ)

選択クエリと書いてありますが、合計を出しているということは集計クエリですよね。
集計クエリあるいは、集計クエリを含むクエリは更新不可のクエリになります。(Accessの仕様)
よって、それを含む更新クエリは実行できません。ですので、

別のアプローチではchatgptに聞いて1,2,3をまとめて一発で在庫数を出せましたが、更新クエリを作って実行したら更新可能な・・・エラーが出て振出しに戻っています

はAccessの仕様です。

対策としては、下記の3つが考えられます。

「1,2,3をまとめて一発で在庫数を出せ」たクエリからテーブル作成クエリ(あるいは追加クエリ)でテーブルにデータを出力して、そのテーブルを更新クエリにする。

「1,2,3をまとめて一発で在庫数を出せ」たクエリを参照するDLookup関数を更新クエリに埋め込んで実行する。

VBAで「1,2,3をまとめて一発で在庫数を出せ」たクエリとマスタテーブルをそれぞれ差コードセットして開いて、マスターテーブルを先頭からループして、クエリのレコードセットを検索して在庫数を更新していく。

蛇足

データベース設計の基本として計算値はテーブルに格納しないとというのがあります。
今回の場合、「1,2,3をまとめて一発で在庫数を出せ」たクエリがあるのなら、その結果をマスターテーブルに格納する必然性はデータベース的にはないです。

どうしても格納するのなら、入庫、出庫のタイミングで、在庫数を更新するというアプローチが一般的です。

通報 ...