hatena
hatena
2024/05/13 (月) 17:41:52
1 入庫テーブルをグループ化して個数の合計を出す(選択クエリ)
2 出庫テーブルをグループ化して個数の合計を出す(選択クエリ)
選択クエリと書いてありますが、合計を出しているということは集計クエリですよね。
集計クエリあるいは、集計クエリを含むクエリは更新不可のクエリになります。(Accessの仕様)
よって、それを含む更新クエリは実行できません。ですので、
別のアプローチではchatgptに聞いて1,2,3をまとめて一発で在庫数を出せましたが、更新クエリを作って実行したら更新可能な・・・エラーが出て振出しに戻っています
はAccessの仕様です。
対策としては、下記の3つが考えられます。
「1,2,3をまとめて一発で在庫数を出せ」たクエリからテーブル作成クエリ(あるいは追加クエリ)でテーブルにデータを出力して、そのテーブルを更新クエリにする。
「1,2,3をまとめて一発で在庫数を出せ」たクエリを参照するDLookup関数を更新クエリに埋め込んで実行する。
VBAで「1,2,3をまとめて一発で在庫数を出せ」たクエリとマスタテーブルをそれぞれ差コードセットして開いて、マスターテーブルを先頭からループして、クエリのレコードセットを検索して在庫数を更新していく。
蛇足
データベース設計の基本として計算値はテーブルに格納しないとというのがあります。
今回の場合、「1,2,3をまとめて一発で在庫数を出せ」たクエリがあるのなら、その結果をマスターテーブルに格納する必然性はデータベース的にはないです。
どうしても格納するのなら、入庫、出庫のタイミングで、在庫数を更新するというアプローチが一般的です。
通報 ...