- ベストアンサー
サブフォームの金額合計をメインフォームに表示させたい
OS:XP ACCESS2003 フォームに金額の明細があるサブフォームを3つ貼り付けています。各サブフォームの金額の合計は、フッターに=Sum([金額])で表示されます。(金額入力毎に足されます) メインフォームの金額欄に、この3つの合計を金額が追加されたごとに出したいのですが、よくわかりません。 よろしくお願いします。
- idek
- お礼率47% (170/361)
- その他(データベース)
- 回答数5
- ありがとう数3
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>サブフォームの金額が追加(=サブフォームのSUM([金額])足されていく) >されると同時にメインフォームの金額が増えていく、という事を考えています。 >メインフォームの金額はクエリー経由のテーブルをコントロールソースにしています。 まだちょっと意味を把握していませんが・・ メインフォームのレコードソースとしているクエリにサブフォームのレコードソースの金額を合計するフィールドもあるのですか?メインフォームのクエリの金額が何の金額を表示しているのでしょうか? メインフォームのクエリ内にサブフォームで入力するテーブルの金額を合計するフィールドがあるなら各サブフォームのレコード移動時のイベントに Forms![メインフォーム名].Form.Requery とすればサブフォームに入力後他のレコードに移る際にメインフォームをRequeryし金額のフィールドを再計算してくれます。
その他の回答 (4)
- O_cyan
- ベストアンサー率59% (745/1260)
メインフォームに非連結のテキストボックスを配置しプロパティのコントロールソースに =[サブフォーム1].Form!合計1+[サブフォーム2].Form!合計2+[サブフォーム3].Form!合計3 とすれば表示できます。 サブフォーム1~3と合計1~3は使っているサブフォームと合計を表示しているサブフォームのコントロール名に変更してください。 >メインフォームの金額はクエリー経由のテーブルをコントロールソースにしています。 補足に上記がありましたがメインフォームの金額とは別にサブフォームの合計金額を表示するテキストボックスを配置すれば出来ます。 それともメインフォームの金額にサブフォームの合計を表示したいという事ですか。
補足
>それともメインフォームの金額にサブフォームの合計を表示したいという事ですか。 はい。サブフォームの金額が追加(=サブフォームのSUM([金額])足されていく)されると同時にメインフォームの金額が増えていく、という事を考えています。
- CHRONOS_0
- ベストアンサー率54% (457/838)
金額は連結コントロールなんですか だったら、非連結のコントロールに前回のようにして求めた値を 何らかのイベントで代入してやるしかないですね サブフォームの更新後イベント当たりがいいかな
- CHRONOS_0
- ベストアンサー率54% (457/838)
サブフォームのフッターに置いたテキストボックスの値を参照するには下のような式を使います =サブフォーム1.Form!テキスト名 + サブフォーム2.Form!テキスト名 + サブフォーム3.Form!テキスト名
お礼
基本的な事まですいません。ありがとうございました。
補足
メインフォームの金額はクエリー経由のテーブルをコントロールソースにしています。メインフォームの「金額」テキストボックスのコントロールソースに上記の式を当てはめられません。どのプロパティとか、なにか別の方法とかありますか。たびたびすいません。
メインに表示するにはサブフォームを集計すればいいです。 ただし、カーソルの制御が問題になると思います。 下手をすると、カーソルがメインから入力中のサブフォームの先頭に戻るでしょう。
関連する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”になる。 行削除しても「合計金額」は変わらず、変更前のまま。 どちらも、サブフォオームの「金額計」は正しく表示されています。 以上、よろしくお願い致します。
- 締切済み
- Visual Basic
- Accessでサブフォームの合計をメインフォームに表示・保存したい。
あまりに初心者なので、用語などをわかっておらず、理解しづらい部分がありましたら、申し訳ございません。 アクセス2002を使用しています。 Aという顧客情報をメインフォームで作り、サブフォームに購入した商品情報を入れています。 この商品の金額の合計を出し、メインフォームに表示・保存させたいのです。 どうのように作成すればよいのでしょうか。
- ベストアンサー
- オフィス系ソフト
- Accessのメインフォームとサブフォームの使い方について
Accessにてメインフォーム(単票形式)+サブフォーム(帳票形式)を使って進捗管理をするデータベースを作っており、新規にメインフォームで入力し、サブフォームで入力したデータを表示させてます。 サブフォームで更新したいレコードをクリックしたときにメインフォームでそのレコードを表示させるにはどのようにすればよろしいのでしょうか?
- ベストアンサー
- その他(データベース)
- ACCESSのメインフォームとサブフォームについて
ACCESSで、受注伝票のようなものを作成したいと思っています。受注伝票フォームに受注明細のサブフォームを埋め込んだようなフォームを作ろうとしています。その際、受注伝票と明細に受注コードのフィールドを設け関連づけたいのですが、メインフォームに受注コードを入力したらサブにも同じコードが自動的に振られるようなことはできるのでしょうか。 出来ないのであれば、どのように作ればよいのでしょうか。
- ベストアンサー
- オフィス系ソフト
- サブフォームのフォームフッターが表示されません
はじめまして、 アクセス2000で メインのフォームに作成したサブフォームのフォームフッタにコマンドボタンをつくりたいのですが デザインビューでは表示されるのに実際に実行すると表示されません。 なぜなんでしょうか?
- ベストアンサー
- オフィス系ソフト
- アクセスのサブフォームからメインフォームへキーで切り替えをする
何度もお世話になっております。m(_ _)m アクセスのフォームで、サブフォームを作成しています。 EnterキーまたはTabキーで、フォームの中を進んでいくと、メインフォームのフィールドからサブフォームのフィールドへ進みます。 この進む順番は、タブオーダーで設定できるので問題ないのですが、 サブフォームの情報を入力し終えて、メインフォームへカーソルを飛ばしたい場合、どうすればいいのでしょうか? そのままEnterやTabを押しても、サブフォームの中の新規レコードが追加されるだけです。 自分でキーなどを設定できるのであれば、なおさら良いのですが・・・ とりあえず、基本的な操作方法として、サブフォームからメインフォームへ移るキーを教えてほしいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- サブフォームのテキストボックスの表示が遅い
ACCESS2010です。 サブフォーム(帳票フォーム)のフッターにある、コントロールソースが =nz(sum([金額]),0) と設定してあるテキストボックスがあります。([合計金額s]) サブフォームの詳細には[数量]、[単価]、[金額](タブオーダーもこの順番)があり、この[金額]の合計値が上記[合計金額s]に表示されます。 ただ一つ問題があり、[金額]でエンターを押した後[合計金額s]の内容が更新されるまで約1秒位かかります。 これの何が問題なのかと言うと、[金額]でエンターを押した後[F12]キーを押すことで入力したデータをテーブルに書き込んでいるのですが、メインフォームに[合計金額s]を参照しているコントロールがあり、[合計金額s]が更新される前に[F12]キーを押すと更新前の内容でデータに書き込まれてしまうのです。 今は[金額]でエンターを押し一息ついてから[F12]キーを押しています。 何か良い解決策が有りましたらご教示ください。
- 締切済み
- オフィス系ソフト
- ACCESSで、メインフォームとサブフォームがあるとき・・・
Accessで、メインフォームとサブフォームがあり、メ インフォームのテキストボックスで期間を指定し、再 クエリを行うマクロボタンでサブフォーム上に期間指 定したデータのみが表示されるようにしています。 また、Access起動時に開くフォームがあり、そのフォ ームに、先ほど上述したメインフォームが開くマクロ ボタンを作成したところ、パラメータの入力画面が出 てきてしまいました。 恐らく、サブフォームの抽出用のクエリに設定してあ るものだと思いますが、これが表示されないようにす ることは出来ないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- ACCESS2000のメインフォームサブフォーム間の移動
Access2000でメインフォームの中に詳細を確認/入力するためのサブフォームを作成しています。 メインフォームの中のコントロールを最後まで入力(enterで移動)していくと、メインフォームの最後のコントロールの次はサブフォームの最初のコントロールに移動します。(これは普通ですよね?) サブフォームはデータの詳細によっては1レコードで終わるものもありますし、複数レコードにわたるものもあります。 サブフォームの入力が終了したときに、キー操作でメインフォームの次のレコードの頭のコントロールに移動する事はできますか? マクロをAccessの方から設定するくらいならできるのですが、自分でSQLをうんぬんする知識はありません。 よい方法があったら教えてください。
- ベストアンサー
- オフィス系ソフト
- アクセスのサブフォーム
アクセス2000を使っているのですが、サブフォーム内に表示されている金額の合計をメインフォームに表示させる事は出来るでしょうか? またサブフォームを透明にして、メインフォームが透けて見えるようにはならないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
大変参考になりました。ありがとうございました。一部まだうまくいきませんが、じっくり考えてみます。