- ベストアンサー
Accessのサブフォームの累計について
とても初歩的な質問で申し訳ありませんが、誰か教えて下さい。 売上メインフォームの中に 「Aの商品のサブフォーム」 「Bの商品のサブフォーム」 「Cの商品のサブフォーム」 「Dの商品のサブフォーム」 と作ってあります。 各小計はメインフォーム内に出しております。 メインフォームの累計をフォームフッターに出すのですが、A~Dの商品の売上が無い場合(小計が出ない場合) フォームフッターの累計に合計が反映しません。 どのような式を入れれば、良いのでしょうか? どなたか教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
実際にAccess2000上でやってみました! 「Aの商品のサブフォーム」内に合計値を算出しているコントロールに、 =IIf(IsNull(Sum([価格])),0,Sum([価格])) と式を書きます。 これを合計値Aとします。 B C Dのサブフオームにも同じ事を書いて メインフォーム上で 合計値A+合計値B+合計値C+合計値D としてみてはどうでしょうか。 これだと A B C Dどれかがレコードがなくても、期待した結果が得られると思います。 (メインフォーム上でNULLチェックをしても同じ効果を得られると思います。) 上記の方法で、メインフォーム上の合計値には サブフォーム内にレコードがない場合でも 0と表示されることを確認しました。 できなければ また書き込みして下さい。
その他の回答 (1)
- nekomilk
- ベストアンサー率24% (20/83)
昔やったので、あまり自信がありませんが >各小計はメインフォーム内に出しております。 で、出している小計が値として認識されていない 為だと思われます。(サブフォームにレコードがないから) IsNumric(IsNULLかも)で、数値ではないのなら0として 足し算すれば、うまくいくかもしれません。
お礼
ありがとうございます。 その後もいろいろ試しましたが、無理でした。 <IsNumric(IsNULLかも)で、数値ではないのなら0として 足し算すれば、うまくいくかもしれません。 ↑こちらをするとなるとA~Dの売れてないフォームに仮入力をしないといけないのではないでしょうか? 頭ではVBでならできるんだろな~・・・とはわかっていても何をどういじればいいのかわからないでいます。
お礼
有難う御座いました。 とても助かりました!! メインフォームに合計値がちゃんと反映されました。 今、急いで、素人ながらにシステムを作っているので素早い解答をして頂いて嬉しく思います。 又、しょーもない質問するかもしれませんが宜しくお願いします。