お世話になっております。
受注フォームのサブフォームに商品フォームがあって、商品フォームのサブフォーム(孫フォーム)に商品オプションフォームがあります。
商品、オプションををれぞれ選択すると金額が表示されるようになっています。
この場合で各商品ごとの合計金額(商品+商品オプションが複数)を出したいのですが、どのようにすればいいでしょうか。
サブフォームでの合計の出し方はわかるのですが、孫フォームがある場合の総合計の出し方がよくわかりません。
ご教授いただければ幸いです。よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>商品ごとの合計を出したい
簡単な方法は商品フォームにもう一つ商品ごとの合計を表示するフォームを配置する方法です。
そのフォームの元になるレコードソースを商品オプションの商品ごとの合計を出すように商品でグループ化し商品オプションの金額を合計にしたクエリにします。抽出は受注No(?商品オプションフォームのインデックスに使用しているフィールドで)にします。
このフォームを商品フォーム内の商品オプションフォームの下にでも配置します。
商品オプションフォームのプロパティのレコードの移動時のイベントに(商品オプション合計フォームとした場合)
Private Sub Form_Current()
Forms![受注フォーム]![商品オプション合計フォーム].Requery
End Sub
として商品オプションフォームでレコードを移動した際(入力等をして次のオプションのレコードに移動した際)に商品オプション合計フォームをRequeryさせて合計を表示させるようにすれば出来ます。
(商品オプションフォームのオプション金額のコントロールの更新後処理などのイベントではレスポンスが多分悪くなるのでフォームのレコード移動時のイベントの方がすんなり動くはずです)
こんな感じで試してみてください。
この回答への補足
度々ありがとうございます。
>そのフォームの元になるレコードソースを商品オプションの商品ごとの合計を出すように商品でグループ化し商品オプションの金額を合計にしたクエリにします。抽出は受注No(?商品オプションフォームのインデックスに使用しているフィールドで)にします。
恥ずかしながら上記の意味が理解できずに実現できませんでした。
一番近いと思ったのはこのようにしました。
商品オプションの金額を求めるクエリがありますので、新クエリにそのクエリを表示させます。
そのクエリからコードNoと商品オプション金額のフィールドを追加します。
フィールドを右クリックして集計をクリックするとグループ化と表示されました。
(あまり意味がないように思いましたが、これ以上はどうしていいかわかりませんでした。)
あと、この新クエリを商品フォームに[商品オプション合計フォーム]として追加したのですが、このフォームは商品フォーム内に表示されませんでした。
サブフォームが二つになるのですが、表示させるにはどうしたらいいでしょうか。
Requeryの部分はできると思います。
自分なりにも何時間か考えてみたのですが、知識不足でできませんでした。
何度も申し訳ございませんが、よろしくお願いいたします。
No.4
- 回答日時:
<受注フォーム>
ID [ 1]
<受注フォーム サブフォーム=商品フォーム>
ID [ 1]
受注_ID [ 1]
行番号 [ 1]
商品_ID [ 1]
商品名 [PX-11 ]
オプション_1 [ 1]<-- 商品オプションコンボボックス
オプション_2 [ 2]<-- 商品オプションコンボボックス
オプション_3 [ 2]<-- 商品オプションコンボボックス
オプション_1_金額 [ \100]
オプション_2_金額 [ \200]
オプション_3_金額 [ \300]
オプション_行合計 [ \600]
行番号 [ 2]
商品_ID [ 2]
商品名 [PX-12 ]
オプション_1 [ 3]<-- 商品オプションコンボボックス
オプション_2 [ 4]<-- 商品オプションコンボボックス
オプション_3 [ 5]<-- 商品オプションコンボボックス
オプション_1_金額 [ \400]
オプション_2_金額 [ \500]
オプション_3_金額 [ \600]
オプション_行合計 [ \1,500]
オプション_1_金額_合計 [ \500]
オプション_2_金額_合計 [ \700]
オプション_3_金額_合計 [ \900]
オプション_総合計 [ \1,500]
疑問1=(孫フォーム)に商品オプションフォームを配置する必要性が理解できません。
理由1=[オプション_X]をコンボボックスにすれば事足りるとおもいますが...
疑問2=[オプション_1_金額_合計][オプション_総合計]を更新するのに Requary は関係ないかと...
理由2=[オプション_1_金額_合計]は、単に'=Sum[オプション_1_金額]’としとけば自動更新されるのでは...
今回はオプションにも乗率や個数の入力が必要でしたのでサブフォームにしました。
考え方は勉強になりました。ありがとうございました。
No.3
- 回答日時:
>商品オプションの金額を求めるクエリがありますので
詳細は分かりませんがそのクエリをコピーして新たにクエリを作れば大丈夫だと思います。またはそのクエリを他で使っていなければそのまま使えば良いのですが。
クエリのフィールドが例えば受注No・商品No・商品オプションNo・商品オプション名・商品オプション金額であれば商品のオプションの合計を出すのに必要なフィールドのみにします。受注No・商品No・商品オプション金額この状態でグループ化して受注No・商品Noはグループ化し商品オプション金額を合計にすれば受注No・商品Noごとのオプション金額の合計を出せますよね。
これを元にします。そして受注フォームの受注Noをクエリの抽出条件に Forms![受注フォーム]![受注No] とすれば受注フォームの受注Noで抽出してくれます。
>[商品オプション合計フォーム]として追加したのですが・・商品フォーム内に表示されませんでした
>サブフォームが二つになるのですが、表示させるにはどうしたらいいでしょうか
通常のサブフォームを配置するようにすればサブフォームとして配置できるはずなのですが・・。
商品フォームの商品オプションフォームの下の位置に配置できませんか?
何度もありがとうございます。できました!
サブフォームはデータシート形式にしていたので表示されなかったのですが、表形式にしたら表示されました。
本当にありがとうございました。
No.1
- 回答日時:
>計金額(商品+商品オプションが複数)を出したいのですが
例えば商品フォームに商品合計金額・商品オプションフォームに商品オプション合計金額というコントロールを配置してそれぞれの合計を演算し表示するようにします。
受注フォーム(メーンフォーム)の合計金額のコントロールソースに
=商品フォーム.Form!商品合計金額+商品フォーム.Form!商品オプションフォーム.Form!商品オプション合計金額
とすれば商品合計金額と商品オプション合計金額を合計できます。
=サブフォーム名.Form!コントロール名+サブフォーム名.Form!孫フォーム名.Form!コントロール名
で指定します。
この回答への補足
早々のご回答ありがとうございます。
商品Aにオプション1,2,3
商品Bにオプション2,3,4
このような受注であった場合に
商品Aにオプション1,2,3=合計1
商品Bにオプション2,3,4=合計2
合計1+合計2=受注合計
このように商品ごとの合計を出したいと考えています。
受注合計はご指示の方法で出るのですが、各商品ごとの合計をフォームのどこかに出したいのですが、可能でしょうか。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- JavaScript テーブルの中のセレクトボックスの値が0のとき、非表示にしたい 3 2022/05/29 10:13
- その他(プログラミング・Web制作) Googleフォーム・複数人の申し込みをまとめて受け付けたい 1 2023/01/09 13:36
- Amazon Amazon 返品について。 5 2022/07/15 19:53
- docomo(ドコモ) ドコモオンラインショップに詳しい方!! 大変困っています。 充電器を購入しましたが、不良品でした。お 3 2023/06/28 20:13
- その他(ネットショッピング・通販・ECサイト) 中国から局留めの商品が届かず、問い合わせても返信がありません。 1 2022/09/25 01:21
- 楽天市場 楽天市場の店舗の不手際によるキャンセルと受取拒否について(長文です) お世話になっております。 11 4 2022/09/22 18:46
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Accessのサブフォームから値を...
-
Access2000、これはいったい・...
-
アクセスで サブフォームの表...
-
Access2000 サブフォームのReco...
-
Accessで、サブフォームのある...
-
レコードセットで得た結果をサ...
-
ACCSESS2013VBA フォームのレコ...
-
access サブフォームにリストを...
-
(ACCESS)条件に応じて、テキ...
-
アクセスでサブフォームのレコ...
-
ACCESS サブフォームのフィール...
-
サブフォームが見えなくなる。
-
AccessのDoCmd.ApplyFilterの使...
-
Accessで、一覧からクリックし...
-
アクセス2003 - レコード追...
-
ACCESS サブフォーム MAX関数...
-
Accessでサブフォームの中の並...
-
Access VBA チェックボックスで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
ACCSESS2013VBA フォームのレコ...
-
Access 複数フォームを...
-
(ACCESS)条件に応じて、テキ...
-
access サブフォームにリストを...
-
Accessのサブフォームから値を...
-
サブフォームが見えなくなる。
-
Access2000、これはいったい・...
-
サブフォームでのダブルクリッ...
-
サブフォームのデータを保存す...
-
googleフォームでインストール...
-
Accessで、一覧からクリックし...
-
ACCESSでfilterとorderbyについて
-
Access2000 サブフォームのReco...
-
レコードセットで得た結果をサ...
-
サブフォームの切り替え方を教...
-
アクセスでサブフォームのレコ...
-
AccessのFormのみをスクリーン...
-
別MDBのフォームを起動
-
Accessのコンボボックスに連動...
おすすめ情報