Microsoft Access 掲示板

テクストボックスからテーブルとクエリを更新したい

5 コメント
views
4 フォロー

テーブルとクエリに「総合計」のフィールドを先に設けてあります。

メインフォームにテキストボックス「総合計」を配置し
コントロールソース=[サブフォーム1]![合計1]+[サブフォーム2]![合計2]

サブフォームの情報↓↓
サブフォーム1にテキストボックス「合計1」
サブフォーム2にテキストボックス「合計2」

この時
メインフォームのテキストボックスのコントロールソースには上記の式が入ってしまいっているため、サブフォームの足し算のみ結果で現れてテーブルの「総合計」には反映されていません。
どのようにしたら「総合計」を吸い上げてくれるのでしょうか。
簡単な方法で済むのか、イベントのビルダーで式を組まなくてはならないのか?
立ち止まってしまっています。お力貸してください。

質問自体バカげていたらごめんなさい。
宜しくお願いします。

苦節1年
作成: 2024/02/16 (金) 10:15:22
通報 ...
1

「総合計」のような集計データはテーブルには格納しないというのが、データベース設計の基本です。
必要に応じて、その都度計算するような設計にします。
集計クエリ、演算コントロールでのSum,Count関数、DSum,DCount関数など、状況に応じて適切な方法を使いわけましょう。

例えば、今回の質問のフォームでは演算コントロールでその都度、計算してますよね。

どうしてもテーブルに格納するというのなら、サブフォームの更新後処理で代入するということになります。
が、更新や入力か必ずそのフォームから行われるのならいいですが、そうとは限らない場合もあるでしょうし、更新後処理がエラーなどでうまくいかないなど、など、、、その集計が正しいという保証がないので、通常はそのようなことはせずに、その都度計算します。

3

横からすいません。
集計データをテーブルに格納しない場合、例えば商品Aの単価が100円から200円に変わった場合などに合計金額などに不都合が発生するように感じたのですが、問題ないのでしょうか?

4
りんご 2024/02/16 (金) 12:18:08 935bc@0e907 >> 3

新しい質問で、テーブル構造を提示した上で、意見募集するのはどうでしょう?

2
苦節1年 2024/02/16 (金) 11:44:14 ca7cf@20718

ありがとうございます!
そもそも論が聞けてスッキリしました。
頭をリフレッシュして違う方向からトライしてみようと思います。
なんとか抜け出せて本当に助かりました。

5
hiroton 2024/02/16 (金) 12:19:28 b198c@8db65

マスタとトランザクションをキーワードに調べてみることをオススメします

「単価」は一般的にその商品に付随するデータ、ユニークなキーによって決定される単一のデータなので「集計データ」と見なすことはまずないでしょう

実際にどのように管理すべきか?は検討の余地の有るところですが今回の質問とは関係の薄い話ですね