プロが教えるわが家の防犯対策術!

Acdess超初心者です。ご存知の方がいらっしゃいましたらお教え下さい。

Access2003で請求書を作成しております。

メインテーブル 宛名、敬称、発行日、請求番号、件名、課税区分、小計、消費税、合計

サブテーブル  請求番号、項番、工事名、数量、単価

サブテーブルを基に作成したクエリ 請求番号、項番、工事名、数量、単価、金額

メインテーブルの請求番号とサブテーブルの請求番号は1対多のリレーションを組んでいます。
メインテーブルとクエリを基にフォームを作成して、メインフォーム(レコードソースはメインテーブル)
上にサブフォーム(レコードソースはクエリ)を配置しています。
サブテーブルの金額の合計をメインフォーム上の「小計」で求めたいのですが、方法が分かりません。
どのように作成するとメインフォーム上の「小計」でサブフォームの金額合計を求めることができるか
お教え下さい。

初歩的な質問で申し訳ありませんが何卒よろしくお願い致します。

A 回答 (1件)

よく分からんのですが、そのメインフォームの小計というのは、メインテーブルの小計フィールドと同じものですか?


質問の意味は、サブフォームの金額の合計を計算して、その結果を小計フィールドに格納したい、と、こういうことですかね?

いくつか方法がありますが、例えばこんなのはどうでしょうね。
サブフォームのフォームヘッダかどこかに小計というテキストボックスを作って、=Sum([金額])としておきます。メインフォームの方に、小計xというテキストボックスを作って(これはメインテーブルの小計フィールドとは無関係)、=[サブフォーム].[Form].[小計]とします。
この計算結果をメインテーブルの小計フィールドに格納したいのなら、レコード移動時などのイベントで、テーブルに転記するわけです。私なら「保存」とかいうようなボタンを作るかな。

テーブルに直接書き込むプロシージャは説明が長く必要だからそれはやめて、メインテーブルの小計フィールドをソースにしている見えないテキストボックスをどこかにおいておいてください。
それで、プロシージャはこうします。

Sub 保存_Click()
Me![小計]=Me![小計x]
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!