• ベストアンサー
※ 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

  • access 帳票形式での Sum関数について

    お世話になります、 access2003を使っています、 テーブル商品があり、以下3つの列があります 商品名 単価 数量 フォーム集計をテーブル商品を元に帳票形式で作りました 帳票の1行にテキストボックス”金額”を追加してそのコントロールソースの値を [単価]*[数量]にしました。 帳票の1行づつは 商品名 、単価、 数量、金額([単価]*[数量]) の4つの列が並びます。 上記までは一行づつ計算して金額の値は正確に表示されます。 このフォームのフッターに帳票の各業の金額の合計を求めるため テキストボックス”合計金額”をつくり コントロールソースを =Sum([金額]) にしたのですが、明らかに合計金額が違った数値が出てきます。 出てきた金額が何をどう計算して出てきたのか見当が付きません どのようにしたら正確な合計金額が得られるのでしょうか? 何方かお教えいただけますようお願い致します、

  • テキストボックスにクエリ結果を表示させたい

    フォームにテキストボックスAがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスBに表示しようと思っています。 クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。 テーブルは フィールド1|フィールド2   A   |  10   B   |  20   C   |  30   D   |  40 のような簡単なものです。 テキストボックスBのコントロールソースに 「=[○×クエリ]![フィールド2]とやっても「#Name?」と表示されてしまいます。 どのようにやればよいのでしょうか?

  • Sum関数の使い方

    Access2013 vba メインフォームのサブフォームコントロールの中にあるサブフォームA(帳票)のフィールド「金額」の合計値をメインフォームで表示したいのですが、その関数の式を以下のようにして入れましたが、何も表示されません。 「=Sum(Nz([SubForm01].[Form]![発注合計金額],0))」 どこが間違っているか教えて頂けないでしょうか・・・ よろしくお願いします。

  • Access SUMの結果が何もない時0を返す

    親フォームで条件を入れて、その結果がサブフォームに表示されます。 例えば4月という条件を入れると 日付 金額 4/1 \1,000 4/2 \2,000 合計 \3,000 ("合計"というテキストボックスを配置して、コントロールソースに=SUM([金額])を入れています) といった単純なものです。 その時、例えば5月になにもないとすると、そのサブフォームでSUMを計算した時、結果が空白になるため、そこに0を返す方法を教えてください。

  • Access クエリとテーブルの合計値を一緒に表示

    クエリの合計値と親テーブルの合計値をフォーム上にて表示したいのですが、 うまく行かずに困っています。 クエリにて抽出した値の合計 Sum([Q抽出クエリ],[利用金額]) と、 抽出前の合計 Sum([T検索履歴],[利用金額]) を両方表示させたいです。 現状は下記の通りです。 ■使用テーブル・使用クエリ テーブル  [T検索履歴] ------- フィールド [検索履歴ID] [キーワード] [利用金額] クエリ   [Q抽出クエリ] …T検索履歴から特定のキーワードを含むレコードを抽出 フィールド [検索履歴ID] [キーワード] [利用金額] ■フォーム フォームのレコードソース … [Q抽出クエリ] ■現状と問題点 (1)[Q抽出クエリ]にて、キーワード『保護』を含むレコードを抽出します。 (2)抽出されたレコードの[利用金額]を、非連結テキストボックス tBox1 に表示します。 式:tBox1のコントロールソース =Sum([利用金額数]) (3)全体の利用金額合計を知るために、 [T検索履歴]の[利用金額]の合計値を非連結テキストボックス tBox2 に表示させます。 (ここが望む結果になりません。) 式:tBox2のコントロールソース =Sum([T検索履歴],[利用金額数]) 実行した結果 tBox1 … 抽出されたレコードの[利用金額]合計を表示 tBox2 … 上に同じ 望んだ結果 tBox1 … 抽出されたレコードの[利用金額]合計を表示 tBox2 … [T検索履歴] の[利用金額]合計を表示 以上、どうしたら良いのか分からず困っています。 宜しくお願い申し上げます。

  • SUM関数を教えてください

    エクセル画面です      A     B     C 1    氏名  点数 2    H氏   10 3    A氏   20 4    S氏   30 5    T氏   40 6    Z氏   50 7    D氏   60 8    合計      S氏を基準としてS氏が(A4)の位置にある場合の合計を出すときの計算式は   B8=SUM(B4:B7)  となります S氏が(A5)の位置に来た場合   B8=SUM(B5:B7)  となります S氏のセルの位置が上下に移動するので SUM関数で範囲を自働的に変動させて計算させる方法を 教えてください よろしくお願いいたします。

  • SUM関数を教えてください

    エクセル画面です      A     B     C 1 2    H氏   10 3    A氏   20 4    S氏   30 5    H氏   40 6    Z氏   50 7     S氏を基準としてS氏が(A4)の位置にある場合の合計を出すときの計算式は   =SUM(B2:B3)  となります S氏が(A5)の位置に来た場合   =SUM(B2:B4)  となります S氏のセルの位置が上下に移動するので SUM関数の範囲を自働的に変動させて計算させる方法を 教えてください よろしくお願いいたします。

  • Accessフォームから条件抽出する

    access2010で、フォーム内のリスト選択によって、 クエリのフィールドの計算を変えたいです。 「クエリ1」のフィールド名 いずれも数値 ・合計 ・A ・B ・C 「フィールド1」の「リスト1」で、1;2;3いずれか選択し、 選択した結果を「合計」に表示させたい。 ・リスト「1」のとき、Sum(A,B) ・リスト「2」のとき、Sum(A,B,C) ・リスト「3」のとき、Sum(A,B,C,D) できれば「合計」のフィールドの式のみで済ませたいのですが、 何か適切な式はありませんでしょうか。 よろしくお願いいたします。

  • Excel2003でif関数を使うとSUM関数で反映されません

    A1セルに金額を入力すると、B1に1と表示させる為に=IF(A1,"1","")といった数式を入れております。 さらにC1にBセルの合計値を表示させる為に=SUM(B1)C2には=SUM(B1:B2)と入力しているのですが、B列のセルにIF関数を使った数字『1』が表示されてもC列セルに反映されないので困っています。 ここで質問ですが、A列セルに金額が入力されるとB列セルに数字『1』が表示され、更にC列セルにB列セルの合計値が表示される様な関数等はありますでしょうか?解り難い説明ですいません。 因みにA、B、C列共に1~31までのセルがあります。

  • エクセル イレギュラーなSUM関数

    会社で使うエクセル表を作っていますが困っています。 A列B列があり A5にはA1~A4の合計のSUM関数が入っています。 B5にもSUM関数を入れたいのですが B1~B4はイレギュラーな事があった場合のみ数字を入力し B5にはB1~B4に入力された数字の合計と B列に何も入力されていない隣のA列の合計を表示させたいのです。 例えるなら A1~A4に3を入力 A5はSUM関数がはいっているので12が表示されているとして B列はB1~B3は未入力 B4に7が入力された場合 B5にはA1~A3とB4の合計の16が表示されるようにしたいのです。 B4に7を入力したので隣のA4の3は合計しないという事です。 どうぞ宜しくお願い致します。