- ベストアンサー
ACCESSのSum関数で商品A~Cの合計値を表示できない問題の解決方法
- ACCESSのSum関数を使用して商品A~Cの合計値を表示する方法について調査しています。
- レポート上にある商品A~Cのテキストボックスには正常に値が表示されていますが、総計のテキストボックスには何も表示されない問題が発生しています。
- 関数の使い方を調べましたが、原因が分からず困っています。サポートをお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
原因はNullでしたか~ 値がNullの時値を変換する関数として Nz()というのがありますので DSumの関数自体をNz(DSum("[商品A]","抽出クエリ"),0)とすれば Nullの場合でも ゼロ が返されるので 今度はうまく行くと思いますよ。
その他の回答 (5)
- nackfive
- ベストアンサー率32% (21/64)
そうするとですね~ まず 最初に戻りますがSUM()関数は レポートフッタかヘッダでしか 使えなかったはずです。 そもそもSUMはレポートの元になっているソースに対しての SUMなので今回の[抽出クエリ]とレポートのレコードソースは同じなのでしょうか? それとDSUMで表示される3項目の中にNullが無いですか? もしあると商品A+商品B+商品Cとしても Nullになってしまいます ご確認下さい。
お礼
nackfiveさん。 miffyです。 ご丁寧に有難うございます。 DSUMで表示されてる3項目の中にNullがありました。 試しにその項目のフィールドに"1"を入れてレポートを実行させたら、正常の値が表示されました。 Nullの場合は、何かプロパティで設定をするのでしょうか?
- nackfive
- ベストアンサー率32% (21/64)
#3です 不思議ですね~ 私のやり方でも#1の方のやり方でも 本来正常に表示されるはずですので 他に原因があるとしか 思えません。 試しに、コントロールソースに=1としてプレビューしてみて 1が表示されますか? あと 総計のテキストボックスはどこのセクションに配置していますか?
お礼
nackfiveさん。 お返事遅れて申し訳ありません。 総計のコントロールソースに=1としたら、正常に表示されました。 総計のテキストボックスは、詳細のセクションに置いてます。 =[商品A]+[商品B]+[商品C]に戻したら、何も表示されません。 どつぼにはまってます。
- nackfive
- ベストアンサー率32% (21/64)
確実な方法は 総計のテキストボックスに 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]","[抽出クエリ]") 以上のようにプロパティ→コントロールソースを記述し直しましたが、結果は同じでした。 どうしてでしょう?
お礼
nackfiveさん。 miffyです。 Nz関数を使ったら、今度は正常に表示されました。 ネットでSum NZでネット検索したら、使用方法が出てきました。 また、一つ関数を覚えることができました。 スペシャル感謝!!....._〆(・∀・*)ノ