質問: 「請求データ入力」というフォームから、 「請求データ」というテーブルへデータ入力をしています。 画像1:サブフォーム追加前のデザインビュー 画像2:サブフォームを追加したデザインビュー 画像3:サブフォームを追加したフォームから入力した後のテーブル (赤枠内がサブフォームで入力した項目) 現状、入力時に、請求明細(内容/数量/単価/備考)のレコードを1件ずつ入力し、 その後「請求No」でグループ化し、1枚のレポートになるようにしています。 サブフォーム以外の項目は都度入力しています。(小計/消費税/税込金額は自動計算) これを、共通する項目は1度の入力で済むようにし、 請求明細を複数件入力できるようにサブフォームを追加したところ、 サブフォームで入力した内容はテーブルに反映されますが、 他のメインフォームに入力した内容は反映されずに空欄となりました。 サブフォームを追加した以外、元の「請求データ入力」フォームの設定内容は変更していません。 --- 1メイン、サブ共に入力した内容が「請求データ」テーブルに反映されるようにするにはどうすればよいでしょうか。 2テーブルに反映させる際、それぞれのレコード(画像におけるID222/223/224)に 共通する項目(請求日付/請求No/取引先コード/部門/業務件名/請求月)にデータが入るようにするにはどうすればよいでしょうか。 3サブフォーム内の[数量]*[単価]の合計をメインフォームの「小計」欄に表示させるにはどうすればよいでしょうか。 --- 言葉足らずな説明かもしれませんが、 上記の内容で分かる方がいらっしゃいましたら お力添えいただけますでしょうか。 よろしくお願いいたします。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/4f1cc3adf34a4bc9188525fd41df3344.png) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/be4a66c9cdacf3b7b82aa4591d8de80d.png) ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/5f058e6ed7afe7c3175860e773d655c6.png)
回答: メインフォームとサブフォームのレコードソースに同じテーブルを設定しているのですね。それはできません。 まず、テーブルの設計が間違っています。 ヘッダーデータ(メインフォームに表示している項目)と、明細データ(サブフォームに表示している項目)の2つのテーブルに分ける必要があります。 ヘッダーデータをメインフォームのレコードソース、明細データをサブフォームのレコードソースとしてください。 そして、サブフォームコントロールの「リンク親フィールド」にヘッダーデータのテーブルの主キーフィールド名を設定、 「リンク子フィールド」に明細データテーブルの外部キーフィールド名(ヘッダーテーブルの主キーとリンクするフィールド)を設定してください。 参考リンク サブフォームを追加する - Access サブフォームを含むフォームを簡単作成 | Access2010 | 初心者のためのOffice講座