Microsoft Access 掲示板

グループ化したテーブルのレコードに、在庫移動日を追加してテーブルに書き込みたい

4 コメント
views
4 フォロー

こちらの質問の一連でお世話になっております。
T_発注書取込の発注日をグループ化・商品1~4を合計にして、このような集計クエリを作成しました。(発注日は非表示)

区分フィールドの式(区分: "出庫")
合計フィールドの式(合計: (Sum([T_発注書取込].[商品1])+Sum([T_発注書取込].[商品2])+Sum([T_発注書取込].[商品3])+Sum([T_発注書取込].[商品4]))

区分商品1商品2商品3商品4合計
出庫1010101040

この集計されたレコードに、在庫移動日を入力し、そのレコードをT_入出庫状況テーブルに追加するフォームを作りたいのですが、集計クエリをレコードソースにすると読取専用のため~とエラーが出て日付を選択できません。
どのように解決すればよいでしょうか?

My Car Bomber
作成: 2024/01/09 (火) 14:41:57
通報 ...
1

この集計クエリの結果は1件だけですか。それとも複数件になりますか。

複数件の場合は、「在庫移動日」はすべて共通でいいのですか。それともレコード毎に異なるものを入力しますか。

それ以前に、現状のテーブルのフィールド構成はどうなってますか。
主キー設定も含めて提示してください。

2
My Car Bomber 2024/01/10 (水) 08:40:41 7fdfc@44ebd >> 1

"T_発注書取込"テーブルの構成は
取込ID(オートナンバー)主キー
No(数値)
社名(短いテキスト)
〒(短いテキスト)
住所(短いテキスト)
TEL(短いテキスト)
商品1(短いテキスト)
商品2(短いテキスト)
商品3(短いテキスト)
商品4(短いテキスト)
発注日(日付/時刻)

発注日が複数日に渡ることはないので、グループ化で結果は1件だけになります。

3

結果が1件だけなら、いろいろ方法はありますが、
フォームの「在庫移動日」は非連結テキストボックスにしておきます。そうすれば入力可能になります。

レコードソースの集計クエリをもとに追加クエリを作成して、追加先は「T_入出庫状況」にします。
追加元と追加先の対応するフィールドを設定して、次に新規列に下記の設定をします。

フィールド在庫移動日: Forms!フォーム名!在庫移動日
テーブル集計クエリ名
レコードの追加在庫移動日

SQLだと下記のようなになります。

INSERT INTO T_入出庫状況 (区分, 商品1, 商品2, 商品3, 商品4, 合計, 在庫移動日)
SELECT 区分, 商品1, 商品2, 商品3, 商品4, 合計, Forms!フォーム名!在庫移動日 AS 在庫移動日
FROM 集計クエリ;

フォーム上にコマンドボタンを配置して、そのクリック時にこの追加クエリを実行するようにすればいいでしょう。

4
My Car Bomber 2024/01/10 (水) 10:43:13 7fdfc@44ebd >> 3

ありがとうございます!
非連結にすればよかったのですね。

回答頂けるまでにいろいろ試して、区分・商品1~4・合計・移動日・在庫移動日・発注日フィールドを持つtmpテーブルを作成し、こちらをレコードソースにしてフォーム作成しました!