• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Sum関数の使いかたについて(ACCESS))

ACCESSのSum関数で商品A~Cの合計値を表示できない問題の解決方法

このQ&Aのポイント
  • ACCESSのSum関数を使用して商品A~Cの合計値を表示する方法について調査しています。
  • レポート上にある商品A~Cのテキストボックスには正常に値が表示されていますが、総計のテキストボックスには何も表示されない問題が発生しています。
  • 関数の使い方を調べましたが、原因が分からず困っています。サポートをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nackfive
  • ベストアンサー率32% (21/64)
回答No.6

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

miffy123
質問者

お礼

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

その他の回答 (5)

  • nackfive
  • ベストアンサー率32% (21/64)
回答No.5

そうするとですね~ まず 最初に戻りますがSUM()関数は レポートフッタかヘッダでしか 使えなかったはずです。 そもそもSUMはレポートの元になっているソースに対しての SUMなので今回の[抽出クエリ]とレポートのレコードソースは同じなのでしょうか? それとDSUMで表示される3項目の中にNullが無いですか? もしあると商品A+商品B+商品Cとしても Nullになってしまいます ご確認下さい。

miffy123
質問者

お礼

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

  • nackfive
  • ベストアンサー率32% (21/64)
回答No.4

#3です 不思議ですね~ 私のやり方でも#1の方のやり方でも 本来正常に表示されるはずですので 他に原因があるとしか 思えません。 試しに、コントロールソースに=1としてプレビューしてみて 1が表示されますか? あと 総計のテキストボックスはどこのセクションに配置していますか?

miffy123
質問者

お礼

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

  • nackfive
  • ベストアンサー率32% (21/64)
回答No.3

確実な方法は 総計のテキストボックスに DSumの式が記述されているコントロール名が [商品A],[商品B],[商品C]だと想定した場合 =[商品A]+[商品B]+[商品C] とすれば 表示されるはずです。 もし 表示されないとすれば 総計の 表示されるセクションが表示されない状態に なっている可能性があります。 若しくは 総計の可視がいいえになっているとか。

miffy123
質問者

お礼

nackfiveさん。 御回答有難うございます。 =[商品A]+[商品B]+[商品C]で記述しても、結果は同じでした。 総計のテキストボックスの可視は”はい”になっていますし、 プロパティをいろいろ見てみても、セクションが表示されない原因はないようです。

noname#182251
noname#182251
回答No.2

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

noname#182251
noname#182251
回答No.1

=DSum("[商品A]","[抽出クエリ]")+DSum("[商品B]","[抽出クエリ]")+DSum("[商品C]","[抽出クエリ]") では拙いんでしょうか?

miffy123
質問者

お礼

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

関連するQ&A