プロが教えるわが家の防犯対策術!

受注管理として、注文書の作成入力をしています。

『メインフォーム』で、顧客先などを入力し、『サブフォームA』で受注明細を入力しています。そして受注種類が2つあるので、フィールドの違う受注明細の『サブフォームB』もあるんです。各サブフォームには数量・単価・金額が入っています。

『サブフォームA』『サブフォームB』の両方に注文がある場合は、各サブフォームの合計(=[Form]!サブフォームA!金額合計)を出し、その合計同士を足して総合計金額(A+B)が『メインフォーム』にちゃんと表示されます。しかし、『サブフォームA』にだけ注文がある場合、『A』合計は表示されますが、『B』合計が空欄になってしまって、A+Bの合計が計算されないのです。さらにレポート印刷もできないのです。

どうすればいいのでしょうか?合計プロパティの既定値を0にしてもだめなんです。誰か教えて下さい。

A 回答 (3件)

>、『B』合計が空欄になってしまって


空白のフィールドがあると計算できません。
Nz関数で計算すれば大丈夫です。
=Nz([Form]!サブフォームA!金額合計)+Nz([Form]!サブフォームB!金額合計)
のようにすればどちらかが空白でも計算できます。

この回答への補足

できました!!ありがとうございます。
でも、フォーム上にみえるだけで、テーブルには保存されていないからか、どちらかが空欄の注文書自体がレポートに表示されないのに困っています。
レポートにはサブフォームA・Bをフォームごと載せているのですが、合計テキストボックスの式は『メインフォーム』と同じ=Nz([Form]!サブフォームA!金額合計)+Nz([Form]!サブフォームB!金額合計) じゃだめなんでしょうか?エラーになってしまうんです。

補足日時:2002/11/19 20:07
    • good
    • 0

レポートはテーブル上のデータを表示しますので、無いものは出せないはずです。


どのようなエラーされているか、明確ではないので、なんとも言えませんが、データ入力の時点で、AまたはBに入力されていないレコードに関しては、無理やりテーブルにレコードを作ってやるか、もしくは作らないようにしないと、表示することは難しいと思われます
    • good
    • 0
この回答へのお礼

そうですよね‥。補足の質問を見つけて解答下さってありがとうございます。

お礼日時:2002/11/21 13:20

IIF関数で判断しては?


IIF(サブフォームB!合計="",IIF(ブフォームA!合計="",0,サブフォームA!合計),IIF(サブフォームA!合計="",サブフォームB!合計,サブフォームA!合計+サブフォームB!合計))

※ちょっと書き方を省略しています([FORM]!をつけてください。)
    • good
    • 0
この回答へのお礼

ありがとうございます。
ちょっと付け足したらできました。助かりましたm(__)m

お礼日時:2002/11/19 20:09

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

関連するカテゴリからQ&Aを探す