- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:accessフォームでサブフォームの合計値が出てこない)
accessフォームでサブフォームの合計値が出てこない
このQ&Aのポイント
- 注文書を作成している際に、accessフォームでサブフォームの合計値が表示されない問題が発生しています。
- サブフォーム内で各項目の金額を表示させるために、名前が「金額計」で【合計([金額])】という計算式を使用しています。
- サブフォームを使ったフォームで、「金額計」が「#Name?」と表示され、何も表示されません。コントロールソースは【=[Forms]![サブフォーム]![金額計]】や【=[サブフォーム].[Forms]![金額計]】としていますが、問題点がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下、Access2000での回答です。 通常は、おっしゃってるやり方(=Sum([金額]))で問題なくできるはずです。(私も、ケアレスミスの可能性が強いと思います。) とりあえず、"金額"という名称が、複数のフィールド/コントロールを参照していないか、確認してみてください。 あと、"金額計"コントロールを配置する場所ですが、サブフォームのフォームフッタに配置するのが、もっともベーシックなやり方だと思います。ひょっとしたら、このあたりが影響しているのかもしれません。 それから、=[Forms]![サブフォーム]![金額計] という書き方は間違いで、 =[Forms]![メインフォーム名]![サブフォームコントロールの名前].[Form]![サブフォーム上のコントロール名/フィールド名] が正解です。 何かありましたら、補足をお願いします。
その他の回答 (1)
- ARC
- ベストアンサー率46% (643/1383)
回答No.2
詳細なご説明、ありがとうございます。解かりました(^-^) Sum()は、フィールドの集計はできても、コントロールの集計はできないのです。 "金額計"のコントロールソースを、こんな感じにして下さい。 =SUM([単価]*[数量]) これで多分、大丈夫だと思います。 もし、これでも動かなかったりした場合は、補足をお願いします。
お礼
早速お教え頂き、ありがとうございます。 ソフトのバージョンはAccsess97でした。 質問をした、フォームは、レコードソースがテーブルになっていました。 このサブフォームの=Sum(金額)は、残念ながら#Nameエラーでした。 この金額のテキストボックスには=[単価]*[数量]の式でフォームで計算をしています。 試しにですが=Sum(数量)の欄も作ってみましたが、レコードソースのテーブルに数量のフィールドも設けてあるためか、これも同様のエラーになってしまいます。 これではどうしてもうまくいかなかったので、当たり前の事かも知れませんが、クエリーをこのフォームの為に作り、[単価]×[数量]はこのクエリーで計算するようにしました(あまりクエリーの意味についてわかってはいません)。 すると、=Sum()はうまくいきました。 また、このサブフォームの計算値を引き出す関数も、教えて頂いた物でうまく行きました。 (物の本にもこの関数は書かれていましたが、それはそのまま使えず、適当に変形して使っていました。 原理も分かっていませんでしたので、今でも分かりませんが、間違っていたようです。) アクセス2000になると、この辺の事もより簡単に出来るように改善されているのでしょうか? アクセスの本も少しずつ読み進めてはいるものの、そこに書かれている例題を少し変えてしまうと途端に出来なくなってしまうのが今の私のレベルです。 なかなか難しいですね。 後にこれを見る方もいるかもしれませんので、お礼を書くのが目的の欄ですが、出来るだけ詳しく書かせてもらいました。 厚かましいお願いですが、また宜しくお願いします。 ありがとうございました。