メインフォームにサブフォームを組み込んで、サブフォームを含むフォームを作成できます。
コントロールの[サブフォーム/サブレポート]ボタンを使用すると、メインフォーム内の任意の位置にサブフォームを組み込み、メインフォームとサブフォームを作成できます。
テーブル間にリレーションシップを設定した作成済みのフォームがあれば、コントロールの[サブフォーム/サブレポート]を使って簡単に作成できます。
![コントロールの[サブフォーム/サブレポート]を使ってサブフォームを組み込む](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard1.png)
参考ここではオブジェクトの表示は[ウィンドウを重ねて表示する]の設定にしています。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[重ねて表示]の違いと切り替え方法
Access 2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 以前からAccessを使っている方 ...
テーブルとリレーションシップの確認
以下のように4つのテーブルがあります。
[T_売上伝票]、[T_売上明細]、[T_担当]、[T_製品]
[主キー]の設定
各テーブルには[主キー]の設定をしています。各テーブルのデザインビューです。
![デザインビューで[主キー]の設定](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/formwizard3.png)
![デザインビューで[主キー]の設定](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/formwizard4.png)
参考主キーの設定については、以下の記事で詳しく解説しています。
-
Accessテーブルの[主キー]の設定方法とメリット
Accessのテーブルでは、[主キー](シュキー)を設定することができます。[主キー]とは、各レコードを固有のものとして識別するフィールドの ...
リレーションシップと参照整合性の設定
リレーションシップウィンドウを開いて、リレーションシップと参照整合性の設定を行っています。

4つのテーブルをデータシートビューで開くと、以下のようになっています。
レコードの左端に表示されている[+]は[展開インジケーター]と呼ばれるものです。
リレーションの設定を行うと表示されます。[+]をクリックすると、サブデータシートを表示でき、関連付けしたテーブルの内容を確認できます。

参考リレーションシップと参照整合性については、以下の記事で詳しく解説しています。
-
Accessでリレーションシップを作成し参照整合性を設定する方法
Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...
サブデータシートについては、以下の記事で解説しています。
-
サブデータシートはテーブルプロパティで手動設定できる
Accessのテーブル間でリレーションシップの設定すると、2つのテーブルに関連性が生じます。 テーブルをデータシートビューで開くと、各レコー ...
メインフォームの作成
まず、クエリを作成して、そのクエリをもとにメインフォームとなる単票フォームを作成します。
メインフォームのもとになるクエリの作成
メインフォームのもとになるクエリを作成します。
[作成]タブの[クエリ]グループにある[クエリデザイン]をクリックします。
![[作成]タブの[クエリデザイン]ボタン](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/formwizard10.png)
メインフォームのもとになるクエリを作成します。
クエリウィンドウに、テーブル[T_売上伝票]と[T_担当]を表示して、デザイングリッドに以下のように追加します。
リレーションシップウィンドウで設定した参照整合性は、クエリにも反映されます。
[担当者名]を表示するために[T_担当]からフィールドを追加します。
また、[伝票No.]の昇順に並べたいので、[伝票No.]の[並べ替え]で[昇順]を選択します。

[デザイン]タブの[結果]グループにある[表示]をクリックして確認します。
![[デザイン]タブの[結果]グループにある[表示]](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/formwizard8.png)
以下のように表示されます。クエリは、[Q_売上伝票]という名前を付けて保存します。
キーボードから[F12]キーを押すと、[名前を付けて保存]ダイアログボックスを表示できます。
作成したクエリは閉じておきます。

クエリ[Q_売上伝票]をもとに単票フォームを作成
ナビゲーションウィンドウの[Q_売上伝票]を選択したまま、[作成]タブの[フォーム]グループにある[フォーム]をクリックします。
フォーム
フォームを作成して、1レコードずつ情報を入力できるようにします。
![クエリを選択して[作成]タブの[フォーム]をクリック](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard7.png)
以下のように単票フォームが作成できます。
既定では、[レイアウトビュー]で表示されます。

レイアウトビューやデザインビューでコントロールの位置や配置を調整して、フォームに名前を付けて保存します。
ここでは、[F_売上伝票]とします。
キーボードから[F12]キーを押すと、[名前を付けて保存]ダイアログボックスを表示できます。

参考フォームウィザードを使用して、フォームを作成することもできます。
-
フォームウィザードでフォームを作成(クエリが認識されないことも)
Accessのフォームは、テーブルやクエリのデータを基に、データの表示、入力、編集を行うためのオブジェクトです。 フォームウィザードでは、[ ...
サブフォームの作成
クエリを作成して、そのクエリをもとにサブフォームとなる帳票フォームを作成します。
サブフォームのもとになるクエリの作成
サブフォームのもとになるクエリを作成します。
[作成]タブの[クエリ]グループにある[クエリデザイン]をクリックします。
![[作成]タブの[クエリデザイン]ボタン](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/formwizard10.png)
クエリウィンドウに、テーブル[T_売上明細]と[T_製品]を表示して、デザイングリッドに以下のように追加します。
[製品名]と[販売単価]を表示するために[T_製品]からフィールドを追加します。
また、[明細No.]の昇順に並べたいので、[明細No.]の[並べ替え]で[昇順]を選択します。
[金額]の演算フィールドを追加します。
演算フィールド名:式
ここでは、以下のような式になります。
金額: [販売単価]*[数量]

[デザイン]タブの[結果]グループにある[表示]をクリックして確認します。
名前を付けて保存します。ここでは、[Q_売上明細]とします。

クエリ[Q_売上明細]をもとに帳票フォームを作成
ナビゲーションウィンドウの[Q_売上明細]を選択したまま、[作成]タブの[フォーム]グループにある[その他フォーム]の[複数のアイテム]をクリックします。
複数のアイテム
複数のレコードを一度に表示するフォームを作成します。
![[作成]タブの[複数のアイテム]](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard10-e1724130865937.png)
以下のように帳票フォームが作成されます。
既定では、[レイアウトビュー]で表示されます。
![[帳票フォーム]のレイアウトビュー](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard11-e1724130877475.png)
レイアウトビューやデザインビューでコントロールの位置や配置を調整して、フォームに名前を付けて保存します。
ここでは、[F_売上明細]とします。
キーボードから[F12]キーを押すと、[名前を付けて保存]ダイアログボックスを表示できます。
![[名前を付けて保存]ダイアログボックス](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard12.png)
メインフォームにサブフォームを組み込む
ナビゲーションウィンドウには、上記で作成した[F_売上伝票]と[F_売上明細]の2つのフォームがあります。
メインフォームとなるフォーム[F_売上伝票]をデザインビューで開きます。
![メインフォームを[デザインビュー]で表示](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard13.png)
サブフォームを組み込むために[詳細]領域を少し拡大します。
[フォームフッター]との境界にマウスを合わせて、マウスポインターが上下矢印の形になったら下へドラッグします。
![フォームのデザインビューで[詳細]領域を拡大](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard14.png)
[コントロールウィザーの使用]がオンになっているかを確認
[デザイン]タブの[コントロール]グループにある[その他]をクリックして、
![[デザイン]タブの[コントロール]グループにある[その他]ボタン](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard15.png)
[コントロールウィザードの使用]がオンになっているかを確認します。
![[コントロールウィザードの使用]がオンになっているかを確認](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard16.png)
サブフォームの組み込み
[デザイン]タブの[コントロール]グループにある[その他]をクリック[サブフォーム/サブレポート]ボタンをクリックします。
![[デザイン]タブの[サブフォーム/サブレポート]ボタン](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard17.png)
マウスポインターの形が以下のような形に変わります。サブフォームを組み込む位置でクリックします。
![[サブフォーム/サブレポート]ボタンをクリックした時のマウスポインターの形](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard18.png)
[サブフォームウィザード]が表示されます。
[既存のフォームを使用する]を選択します。一覧に既存のフォームが表示されます。
[F_売上明細]を選択して、[次へ]ボタンをクリックします。
参考既存のテーブルやクエリを選択して使用することもできますが、リレーションシップの設定は必要です。
![サブフォームウィザードで[既存のフォームを使用する]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard19.png)
メインフォームとリンクするフィールドを選択します。
[一覧から選択する]を選択して、[伝票No.でリンクし、Q_売上伝票の各レコードに対しQ_売上明細を表..]が選択されていることを確認して、[次へ]ボタンをクリックします。
![サブフォームウィザード[一覧から選択する]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard20.png)
サブフォームに名前を付けます。ここでは、このまま[F_売上明細]としておきます。
[完了]ボタンをクリックします。

以下のようにメインフォームにサブフォームが埋め込まれます。

レイアウトビューに切り替えて、コントロールの大きさや位置などを見やすいように調整します。

フォームビューで確認します。

参考サブフォームを含むフォームで新規レコードを入力する場合は、メインフォーム側から先に入力します。
また、サブフォームは共通フィールド[伝票No.]でリンクされていますので、サブフォーム側の[伝票No.]は入力する必要はありません。

メインフォームに合計金額を表示したい場合は、以下を参考にしてください。

サブフォームのプロパティでリンクフィールドを確認
作成したメインフォームをデザインビューで開いて、サブフォームを選択してプロパティを表示します。
[データ]タブをクリックすると、サブフォームとなっているフォーム名、リンク親フィールドとリンク子フィールドを確認できます。
ここでは、メインもサブも[伝票No.]でリンクされていることが分かります。
リンク親フィールドは、メインフォーム側のフィールドです。リンク子フィールドは、サブフォーム側のフィールドです。

サブフォームをデータシートに変更するには
サブフォームを以下のようなデータシートビューに変更したい場合は、

フォームをデザインビューで開いて、サブフォームの[フォームセレクター]をダブルクリックします。
フォームのプロパティシートが表示されます。
[書式]タブの[既定のビュー]の▼をクリックして、[データシート]を選択します。
![[書式]タブの[既定のビュー]で[データシート]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2020/07/subwizard30.png)
参考フォームウィザードを使用して、サブフォームを含むフォームを作成できます。この記事と同じサンプルで解説しています。
メインフォームとサブフォームを作成していなければ、以下の方法もお勧めです。
-
フォームウィザードを使ってサブフォームを含むフォームを作成
フォームウィザードで2つのテーブルやクエリを指定して、関連付けされたメインフォームとサブフォームを作成できます。 フォーム作成のもとになるテ ...
リレーションシップがきちんと設定できていれば、フォームを作成するだけで(ワンクリック)でサブフォームを含むフォームを簡単に作成できます。
この場合、サブフォームはデータシートになります。
-
サブフォームを含むフォームを簡単作成
Accessで1つのフォーム上に2つのテーブルの情報を表示して、同時に閲覧できると便利な場合があります。 たとえば、[得意先]テーブルと[受 ...