質問

レポート上に商品A、商品B、商品Cというテキストボックスがあってそれぞれのプロパティのコントロールボックスには以下の設定がしてあります。
=DSum("[商品A]","[抽出クエリ]")
=DSum("[商品B]","[抽出クエリ]")
=DSum("[商品C]","[抽出クエリ]")
商品A~Cそれぞれの合計値は正常に表示されるのですが、商品A~Cの合計値を別に設けたテキストボックス(総計)に表示させたいのですが、何も表示されません。
総計のコントロールボックスには以下の記述をしました。
=Sum([商品A]+[商品B]+[商品C])
Web検索で関数の使い方等を調べましたが、原因が分かりません。
どなたか、サポートをお願いいたします。

通報する

回答 (6件)

原因はNullでしたか~

値がNullの時値を変換する関数として
Nz()というのがありますので
DSumの関数自体をNz(DSum("[商品A]","抽出クエリ"),0)とすれば
Nullの場合でも ゼロ が返されるので 今度はうまく行くと思いますよ。

この回答へのお礼

nackfiveさん。
miffyです。
Nz関数を使ったら、今度は正常に表示されました。
ネットでSum NZでネット検索したら、使用方法が出てきました。
また、一つ関数を覚えることができました。
スペシャル感謝!!....._〆(・∀・*)ノ

そうするとですね~
まず 最初に戻りますがSUM()関数は レポートフッタかヘッダでしか
使えなかったはずです。
そもそもSUMはレポートの元になっているソースに対しての
SUMなので今回の[抽出クエリ]とレポートのレコードソースは同じなのでしょうか?

それとDSUMで表示される3項目の中にNullが無いですか?
もしあると商品A+商品B+商品Cとしても Nullになってしまいます
ご確認下さい。

この回答へのお礼

nackfiveさん。
miffyです。
ご丁寧に有難うございます。

DSUMで表示されてる3項目の中にNullがありました。
試しにその項目のフィールドに"1"を入れてレポートを実行させたら、正常の値が表示されました。
Nullの場合は、何かプロパティで設定をするのでしょうか?

#3です

不思議ですね~ 私のやり方でも#1の方のやり方でも
本来正常に表示されるはずですので 他に原因があるとしか
思えません。

試しに、コントロールソースに=1としてプレビューしてみて
1が表示されますか?
あと 総計のテキストボックスはどこのセクションに配置していますか?

この回答へのお礼

nackfiveさん。
お返事遅れて申し訳ありません。
総計のコントロールソースに=1としたら、正常に表示されました。
総計のテキストボックスは、詳細のセクションに置いてます。
=[商品A]+[商品B]+[商品C]に戻したら、何も表示されません。
どつぼにはまってます。

確実な方法は 総計のテキストボックスに
DSumの式が記述されているコントロール名が
[商品A],[商品B],[商品C]だと想定した場合
=[商品A]+[商品B]+[商品C]
とすれば 表示されるはずです。

もし 表示されないとすれば 総計の
表示されるセクションが表示されない状態に
なっている可能性があります。
若しくは 総計の可視がいいえになっているとか。

この回答へのお礼

nackfiveさん。
御回答有難うございます。
=[商品A]+[商品B]+[商品C]で記述しても、結果は同じでした。

総計のテキストボックスの可視は”はい”になっていますし、
プロパティをいろいろ見てみても、セクションが表示されない原因はないようです。

#1です。投稿前に試験はしていました。改めて試すと
=DSum("[商品A]","[抽出クエリ]")+DSum("[商品B]","[抽出クエリ]")+DSum("[商品C]","[抽出クエリ]")
=Sum([商品A]+[商品B]+[商品C])
のどちらも上手く行きます。こちらのAccessのバージョンは2000です。
あと若干気になったのは「商品A」. . . .がフィールド名とコントロール名の両方に使われていることです。こちらでは問題ありませんがバージョンによってはバッティングするかもしれません。
別の策としては抽出クエリに新しいフィールド

[商品A]+[商品B]+[商品C] AS T

を作成し
=DSum("[T]","[抽出クエリ]")
としてどうでしょうか?「T」に別段意味はなくTotalでも合計でも何でも良いでしょう。

=DSum("[商品A]","[抽出クエリ]")+DSum("[商品B]","[抽出クエリ]")+DSum("[商品C]","[抽出クエリ]")

では拙いんでしょうか?

この回答へのお礼

fuuten_no_nekoさん。
お返事遅れて申し訳ありません。
=DSum("[商品A]","[抽出クエリ]")+DSum("[商品B]","[抽出クエリ]")+DSum("[商品C]","[抽出クエリ]")
以上のようにプロパティ→コントロールソースを記述し直しましたが、結果は同じでした。

どうしてでしょう?

このQ&Aは役に立ちましたか?1 件

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

新しく質問する

注目の記事

コサージュを使いこなすには・・・

コサージュの基本的な付け方から、TPOに合わせたコサージュの選び方についてまとめました。


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集