• ベストアンサー
  • すぐに回答を!

サブフォームの金額合計をメインフォームに表示させたい

OS:XP ACCESS2003 フォームに金額の明細があるサブフォームを3つ貼り付けています。各サブフォームの金額の合計は、フッターに=Sum([金額])で表示されます。(金額入力毎に足されます) メインフォームの金額欄に、この3つの合計を金額が追加されたごとに出したいのですが、よくわかりません。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数1192
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.5
  • O_cyan
  • ベストアンサー率59% (745/1260)

>サブフォームの金額が追加(=サブフォームのSUM([金額])足されていく) >されると同時にメインフォームの金額が増えていく、という事を考えています。 >メインフォームの金額はクエリー経由のテーブルをコントロールソースにしています。 まだちょっと意味を把握していませんが・・ メインフォームのレコードソースとしているクエリにサブフォームのレコードソースの金額を合計するフィールドもあるのですか?メインフォームのクエリの金額が何の金額を表示しているのでしょうか? メインフォームのクエリ内にサブフォームで入力するテーブルの金額を合計するフィールドがあるなら各サブフォームのレコード移動時のイベントに Forms![メインフォーム名].Form.Requery とすればサブフォームに入力後他のレコードに移る際にメインフォームをRequeryし金額のフィールドを再計算してくれます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

大変参考になりました。ありがとうございました。一部まだうまくいきませんが、じっくり考えてみます。

関連するQ&A

  • Accessでサブフォームの合計をメインフォームに

    Access2007で開発しています。 メインフォームにサブフォームを貼り付けており、 サブフォームに入力した「数量」「単価」から「金額」を計算して表示し、 その合計金額をメインフォームのテキストボックス(非連結)に表示しようと しています。 サブフォームは行単位で追加、削除が可能です。 サブフォームの更新結果が正しくメインフォームに表示されずに困っています。 おわかりの方、おられましたらお教え頂きたく、よろしくお願い致します。 【サブフォーム】   ・レコードソース:T_明細   ・[詳細]項目:数量・・・レコードソース=T_明細・数量        単価・・・    〃    =T_明細・単価        金額・・・数量および単価のAfterUpdateで計算して表示。    [フォームフッター]項目:金額計・・・コントロールソース=Sum([金額])   ・Vbaコード:   Private Sub Form_AfterUpdate()   Forms![メインフォーム].合計計算   End Sub   Private Sub Form_Delete(Cancel As Integer)   Forms![メインフォーム].合計計算   End Sub 【メインフォーム】  ・テキストボックス:「合計金額」(非連結) Public Sub 合計計算()    Me.サブフォーム.Requery   方法1: Me!合計金額 =DSum("金額", "T_明細", (キー項目指定 記述省略))   方法2: Me!合計金額 = Me![サブフォーム].[Form].[金額計] End Sub ここで、 方法1の場合:数量、単価の変更入力及び行追加は正しく動作するが、          行削除の後、メインフォームの「合計金額」が再計算されず、変更前のまま。 方法2の場合:数量、単価の変更入力及び行追加すると、「合計金額」が”0”になる。          行削除しても「合計金額」は変わらず、変更前のまま。 どちらも、サブフォオームの「金額計」は正しく表示されています。 以上、よろしくお願い致します。

  • サブフォームのテキストボックスの表示が遅い

    ACCESS2010です。 サブフォーム(帳票フォーム)のフッターにある、コントロールソースが =nz(sum([金額]),0) と設定してあるテキストボックスがあります。([合計金額s]) サブフォームの詳細には[数量]、[単価]、[金額](タブオーダーもこの順番)があり、この[金額]の合計値が上記[合計金額s]に表示されます。 ただ一つ問題があり、[金額]でエンターを押した後[合計金額s]の内容が更新されるまで約1秒位かかります。 これの何が問題なのかと言うと、[金額]でエンターを押した後[F12]キーを押すことで入力したデータをテーブルに書き込んでいるのですが、メインフォームに[合計金額s]を参照しているコントロールがあり、[合計金額s]が更新される前に[F12]キーを押すと更新前の内容でデータに書き込まれてしまうのです。 今は[金額]でエンターを押し一息ついてから[F12]キーを押しています。 何か良い解決策が有りましたらご教示ください。

  • サブフォームにあるテキストボックスの値を参照したい

    ACCESS2010です。 サブフォーム(帳票フォーム)のフッターにある、コントロールソースが =nz(sum([金額]),0) と設定してあるテキストボックスがあります。([合計金額s]) この[合計金額s]の値を、メインフォームのコントロールソースがテーブルの項目に設定されているテキストボックス([金額])で参照したいのですが、金額入力直後の値が参照できません。 現在はメインフォームに中継用のテキストボックス([金額wk])を作成し、コントロールソースを[合計金額s]に設定、acNewRecする前に[金額wk]の値を[金額]へ渡しています。 何とか直接参照する方法はありませんでしょうか。

その他の回答 (4)

  • 回答No.4
  • O_cyan
  • ベストアンサー率59% (745/1260)

メインフォームに非連結のテキストボックスを配置しプロパティのコントロールソースに =[サブフォーム1].Form!合計1+[サブフォーム2].Form!合計2+[サブフォーム3].Form!合計3 とすれば表示できます。 サブフォーム1~3と合計1~3は使っているサブフォームと合計を表示しているサブフォームのコントロール名に変更してください。 >メインフォームの金額はクエリー経由のテーブルをコントロールソースにしています。 補足に上記がありましたがメインフォームの金額とは別にサブフォームの合計金額を表示するテキストボックスを配置すれば出来ます。 それともメインフォームの金額にサブフォームの合計を表示したいという事ですか。

共感・感謝の気持ちを伝えよう!

質問者からの補足

>それともメインフォームの金額にサブフォームの合計を表示したいという事ですか。 はい。サブフォームの金額が追加(=サブフォームのSUM([金額])足されていく)されると同時にメインフォームの金額が増えていく、という事を考えています。

  • 回答No.3

金額は連結コントロールなんですか だったら、非連結のコントロールに前回のようにして求めた値を 何らかのイベントで代入してやるしかないですね サブフォームの更新後イベント当たりがいいかな

共感・感謝の気持ちを伝えよう!

  • 回答No.2

サブフォームのフッターに置いたテキストボックスの値を参照するには下のような式を使います =サブフォーム1.Form!テキスト名 + サブフォーム2.Form!テキスト名 + サブフォーム3.Form!テキスト名

共感・感謝の気持ちを伝えよう!

質問者からのお礼

基本的な事まですいません。ありがとうございました。

質問者からの補足

メインフォームの金額はクエリー経由のテーブルをコントロールソースにしています。メインフォームの「金額」テキストボックスのコントロールソースに上記の式を当てはめられません。どのプロパティとか、なにか別の方法とかありますか。たびたびすいません。

  • 回答No.1
noname#22222
noname#22222

メインに表示するにはサブフォームを集計すればいいです。 ただし、カーソルの制御が問題になると思います。 下手をすると、カーソルがメインから入力中のサブフォームの先頭に戻るでしょう。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • ACCESSのメインフォームとサブフォームについて

    ACCESSで、受注伝票のようなものを作成したいと思っています。受注伝票フォームに受注明細のサブフォームを埋め込んだようなフォームを作ろうとしています。その際、受注伝票と明細に受注コードのフィールドを設け関連づけたいのですが、メインフォームに受注コードを入力したらサブにも同じコードが自動的に振られるようなことはできるのでしょうか。 出来ないのであれば、どのように作ればよいのでしょうか。

  • アクセス2010 サブフォーム集計結果を表示させる

    テーブルに連結したメインフォーム取引台帳があります。 メインフォームに、入金台帳と仕入金額予定表のサブフォームが2つあります。 それぞれのサブフォームにテキストボックスで合計を表示しています。 入金台帳が取引合計 仕入金額予定表が支払合計 この2つのそれぞれの合計をメインフォームの詳細にテキストボックスを追加して表示させ さらに集計するためのテキストボックス作って、下記の式を入れたら エラーが出てしまいます。 レポートではうまくできたのですが、計算結果を表示させる方法を教えてください。 原価率を表示したいのです。 =Sum([取引台帳レポートのサブ出金予定入力表].[Form]![支払合計]/[入金台帳入力用].[Form]![取引合計])

  • ★Access★2つのサブフォームの計算

    受注管理として、注文書の作成入力をしています。 『メインフォーム』で、顧客先などを入力し、『サブフォームA』で受注明細を入力しています。そして受注種類が2つあるので、フィールドの違う受注明細の『サブフォームB』もあるんです。各サブフォームには数量・単価・金額が入っています。 『サブフォームA』『サブフォームB』の両方に注文がある場合は、各サブフォームの合計(=[Form]!サブフォームA!金額合計)を出し、その合計同士を足して総合計金額(A+B)が『メインフォーム』にちゃんと表示されます。しかし、『サブフォームA』にだけ注文がある場合、『A』合計は表示されますが、『B』合計が空欄になってしまって、A+Bの合計が計算されないのです。さらにレポート印刷もできないのです。 どうすればいいのでしょうか?合計プロパティの既定値を0にしてもだめなんです。誰か教えて下さい。

  • Accessメインサブフォームにて・・・

    Accessのサブフォームで、入力するためのフォームと、 実際にメインフォームの中で表示させる時のサブフォームの表示を 変えたいのですが・・・。 (1)ボタンをクリックして、入力するためのサブフォームを表示させる。  これは帳票形式で、テキストボックスの罫線が表示されているよう  にします。 (2)入力し終わったら、メインフォームに戻る。  こちらで表示されるサブフォームは、テキストボックスの罫線が表示  されていないようにする。 上記のようなことはできるでしょうか?よろしくお願いします。  

  • Accessでサブフォームの合計をメインフォームに表示・保存したい。

    あまりに初心者なので、用語などをわかっておらず、理解しづらい部分がありましたら、申し訳ございません。 アクセス2002を使用しています。 Aという顧客情報をメインフォームで作り、サブフォームに購入した商品情報を入れています。 この商品の金額の合計を出し、メインフォームに表示・保存させたいのです。 どうのように作成すればよいのでしょうか。

  • Accessのメインフォームとサブフォームの使い方について

    Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?

  • サブフォームが見えなくなる。

    サブフォームが見えなくなる。 Access初心者です。 メインフォームにサブフォームを入れ込んだのですが、メインフォームを新しいレコードに移動すると、サブフォーム自体が出てこなくなります。 データがあるレコードではきちんとサブフォームが出ていることが確認出来ています。 どうしていいのか判らないので教えて下さい。 マクロで入力ボタンを押すとメインのフォームを開き、新しいレコードに移動することをやっていますが、関係あるでしょうか? やりたいことはメインを新しいレコードに移動した時に、サブフォームが表示されて入力できるようにしたいということです。

  • Access2010 帳票サブフォームで

    Access2010 SP1を使用しています。 帳票サブフォームを含むフォームを作成しています。 1.そのフォームを開いている時、VBAで実際のフォーカス(カーソルがあって直接入力できる位置)が メインフォームにあるかそれともサブフォームにあるかを判断する方法はありませんでしょうか? メインで入力中でもRequery時などで、サブフォーム内のコントロールでEnterイベントが起きてしまい、 本当はサブフォーム内でカーソルが当たって入力する時だけに実行したい処理が動いてしまうのです。 そこでサブのイベントの方にメインで入力中は実行せず、サブで入力している時のみ実行するよう IFで分岐を入れたいのですができますでしょうか? 2.フォームフッタを含む帳票サブフォームでレコードソースが0件の時、 そのフッタにあるテキストボックスへのEnter時にSelLengthやSelStart、Textプロパティが実行できません。 Enter時なのに「コントロールがフォーカスを取得していないときに、コントロールのプロパティまたはメソッドを参照することはできません」 と出てしまうのです。 0件でなければエラーが出ないのですがどうすれば出るようになるのでしょうか?

  • VB.NETでメインフォームにサブフォームを入れたい

    環境はVB.NETです。 メインフォーム(FormMain.vb)内に、サブフォームを作りたいのですが、サブフォームはAccessでやったことがあるくらいで、VB.NETでは初めてです。 サブフォームとして“FormSub.vb”を作りましたが、これをメインフォームでLoadすればよろしいのでしょうか? 手法をご教授いただけると助かります。 よろしくお願い致します。

  • ACCESSで、メインフォームとサブフォームがあるとき・・・

    Accessで、メインフォームとサブフォームがあり、メ インフォームのテキストボックスで期間を指定し、再 クエリを行うマクロボタンでサブフォーム上に期間指 定したデータのみが表示されるようにしています。 また、Access起動時に開くフォームがあり、そのフォ ームに、先ほど上述したメインフォームが開くマクロ ボタンを作成したところ、パラメータの入力画面が出 てきてしまいました。 恐らく、サブフォームの抽出用のクエリに設定してあ るものだと思いますが、これが表示されないようにす ることは出来ないのでしょうか?