実現したいこと
Accessの質問です。
00品番というマスターテーブルの「現在庫数」というフィールドを更新したいです。
実行したいコード
Q_在庫数一括更新
UPDATE Q05_実在庫数 INNER JOIN 00品番 ON Q05_実在庫数.品番コード = [00品番].品番コード SET [00品番].現在庫数 = [Q05_実在庫数]![実在庫数] WHERE ((([00品番].棚番号)<>"処分済み" And ([00品番].棚番号)<>"受注品" And ([00品番].棚番号)<>"BTO-000" And ([00品番].棚番号)<>"直送品" And ([00品番].棚番号)<>"未取得"));
発生している問題・分からないこと
・00作成というテーブルを品番でグループ化し、品番ごとの入荷数を合計した「合計入庫数」
・01注文データというテーブルを品番でグループ化し、品番ごとの注文数量を合計した「合計出庫数」
・T_在庫数補正履歴というテーブルを品番でグループ化し、品番ごとの補正数を合計した「合計補正数」
合計入庫数から合計出庫数を引いた理論在庫数から、実在庫数との差異である補正数を足して、正確な在庫数をシステム上で確認ことを目的としてクエリを組みました。
00品番にある全ての品番の実在庫数が計算できるように、00作成、01注文データにレコードがない品番については0が表示されるようにしています。
Q05_実在庫数まで完成し、あとは計算結果を00品番の現在庫数フィールドに更新するだけ、という段階でタイトルのエラーがでました。
該当のソースコード
Q01_合計入庫数
1SELECT [00品番].品番コード, Nz(Sum([00作成].入荷数),0) AS 入荷数の合計 2FROM 00品番 LEFT JOIN 00作成 ON [00品番].品番コード = [00作成].品番 3GROUP BY [00品番].品番コード; 4
Q02_合計出庫数
1SELECT [00品番].品番コード, Nz(Sum(IIf([01注文データ].出庫日 Is Not Null, [01注文データ].注文数量, 0)), 0) AS 注文数量の合計 2FROM 00品番 LEFT JOIN 01注文データ ON [00品番].品番コード = [01注文データ].発注者品名コード 3GROUP BY [00品番].品番コード; 4
Q03_理論在庫数
1SELECT [00品番].品番コード, Q01_合計入庫数.入荷数の合計, Q02_合計出庫数.注文数量の合計, [入荷数の合計]-[注文数量の合計] AS 理論在庫数 2FROM (Q01_合計入庫数 RIGHT JOIN 00品番 ON Q01_合計入庫数.品番コード = [00品番].品番コード) LEFT JOIN Q02_合計出庫数 ON [00品番].品番コード = Q02_合計出庫数.品番コード; 3
Q04_合計補正数
1SELECT [00品番].品番コード, Nz(Sum(T_在庫数補正履歴.補正数), 0) AS 補正数の合計 2FROM 00品番 LEFT JOIN T_在庫数補正履歴 ON [00品番].品番コード = T_在庫数補正履歴.品番 3GROUP BY [00品番].品番コード; 4
Q05_実在庫数
1SELECT [00品番].品番コード, Q03_理論在庫数.理論在庫数, Q04_合計補正数.補正数の合計, [理論在庫数]+[補正数の合計] AS 実在庫数 2FROM Q04_合計補正数 RIGHT JOIN (Q03_理論在庫数 RIGHT JOIN 00品番 ON Q03_理論在庫数.品番コード = [00品番].品番コード) ON Q04_合計補正数.品番コード = [00品番].品番コード; 3
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
タイトルの通り、「更新可能なクエリであることが必要です」と警告文が出て実行されません。
補足
特になし
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/11/13 04:54
2024/11/14 01:20
2024/11/14 02:32