アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。

受注フォームのサブフォームに商品フォームがあって、商品フォームのサブフォーム(孫フォーム)に商品オプションフォームがあります。
商品、オプションををれぞれ選択すると金額が表示されるようになっています。

この場合で各商品ごとの合計金額(商品+商品オプションが複数)を出したいのですが、どのようにすればいいでしょうか。

サブフォームでの合計の出し方はわかるのですが、孫フォームがある場合の総合計の出し方がよくわかりません。

ご教授いただければ幸いです。よろしくお願いいたします。

A 回答 (4件)

>商品ごとの合計を出したい


簡単な方法は商品フォームにもう一つ商品ごとの合計を表示するフォームを配置する方法です。
そのフォームの元になるレコードソースを商品オプションの商品ごとの合計を出すように商品でグループ化し商品オプションの金額を合計にしたクエリにします。抽出は受注No(?商品オプションフォームのインデックスに使用しているフィールドで)にします。
このフォームを商品フォーム内の商品オプションフォームの下にでも配置します。
商品オプションフォームのプロパティのレコードの移動時のイベントに(商品オプション合計フォームとした場合)
Private Sub Form_Current()
Forms![受注フォーム]![商品オプション合計フォーム].Requery
End Sub
として商品オプションフォームでレコードを移動した際(入力等をして次のオプションのレコードに移動した際)に商品オプション合計フォームをRequeryさせて合計を表示させるようにすれば出来ます。
(商品オプションフォームのオプション金額のコントロールの更新後処理などのイベントではレスポンスが多分悪くなるのでフォームのレコード移動時のイベントの方がすんなり動くはずです)
こんな感じで試してみてください。

この回答への補足

度々ありがとうございます。

>そのフォームの元になるレコードソースを商品オプションの商品ごとの合計を出すように商品でグループ化し商品オプションの金額を合計にしたクエリにします。抽出は受注No(?商品オプションフォームのインデックスに使用しているフィールドで)にします。

恥ずかしながら上記の意味が理解できずに実現できませんでした。
一番近いと思ったのはこのようにしました。

商品オプションの金額を求めるクエリがありますので、新クエリにそのクエリを表示させます。
そのクエリからコードNoと商品オプション金額のフィールドを追加します。
フィールドを右クリックして集計をクリックするとグループ化と表示されました。
(あまり意味がないように思いましたが、これ以上はどうしていいかわかりませんでした。)


あと、この新クエリを商品フォームに[商品オプション合計フォーム]として追加したのですが、このフォームは商品フォーム内に表示されませんでした。
サブフォームが二つになるのですが、表示させるにはどうしたらいいでしょうか。

Requeryの部分はできると思います。

自分なりにも何時間か考えてみたのですが、知識不足でできませんでした。
何度も申し訳ございませんが、よろしくお願いいたします。

補足日時:2006/03/04 21:03
    • good
    • 0

<受注フォーム>



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_金額]’としとけば自動更新されるのでは...
    • good
    • 0
この回答へのお礼

今回はオプションにも乗率や個数の入力が必要でしたのでサブフォームにしました。
考え方は勉強になりました。ありがとうございました。

お礼日時:2006/03/07 16:51

>商品オプションの金額を求めるクエリがありますので


詳細は分かりませんがそのクエリをコピーして新たにクエリを作れば大丈夫だと思います。またはそのクエリを他で使っていなければそのまま使えば良いのですが。
クエリのフィールドが例えば受注No・商品No・商品オプションNo・商品オプション名・商品オプション金額であれば商品のオプションの合計を出すのに必要なフィールドのみにします。受注No・商品No・商品オプション金額この状態でグループ化して受注No・商品Noはグループ化し商品オプション金額を合計にすれば受注No・商品Noごとのオプション金額の合計を出せますよね。
これを元にします。そして受注フォームの受注Noをクエリの抽出条件に Forms![受注フォーム]![受注No] とすれば受注フォームの受注Noで抽出してくれます。
>[商品オプション合計フォーム]として追加したのですが・・商品フォーム内に表示されませんでした
>サブフォームが二つになるのですが、表示させるにはどうしたらいいでしょうか
通常のサブフォームを配置するようにすればサブフォームとして配置できるはずなのですが・・。
商品フォームの商品オプションフォームの下の位置に配置できませんか?
    • good
    • 0
この回答へのお礼

何度もありがとうございます。できました!
サブフォームはデータシート形式にしていたので表示されなかったのですが、表形式にしたら表示されました。
本当にありがとうございました。

お礼日時:2006/03/07 16:40

>計金額(商品+商品オプションが複数)を出したいのですが


例えば商品フォームに商品合計金額・商品オプションフォームに商品オプション合計金額というコントロールを配置してそれぞれの合計を演算し表示するようにします。
受注フォーム(メーンフォーム)の合計金額のコントロールソースに
=商品フォーム.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=受注合計

このように商品ごとの合計を出したいと考えています。
受注合計はご指示の方法で出るのですが、各商品ごとの合計をフォームのどこかに出したいのですが、可能でしょうか。
よろしくお願いいたします。

補足日時:2006/03/03 21:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!