テーブルを使用して、サブフォーム(フォーム内のフォーム)を作成できます。サブフォームには、メインフォームのデータに関連するデータが含まれています。
サブフォーム 別のフォーム内にネストされたフォームです。通常、メインフォームで現在開いているレコードに関連付けられているデータが含まれています。
たとえば、注文を表示するフォームと、注文内の各アイテムを表示するサブフォームを作成できます。
または、国を表示するフォームと、その国の各都市を表示するサブフォームを作成することもできます。
以下は、テーブルからフォームとサブフォームを作成するためのステップバイステップガイドです。
-
新しいフォームを作成する
左側のナビゲーションペインで、フォーム/サブフォームのベースとなるテーブルを選択し、フォームを選択します リボンから( Create タブ)。
これが機能するためには、選択されたテーブルが1対多の関係の「1つの」部分である必要があります。
詳細については、以下を参照してください。
-
フォームとサブフォーム
フォームとそのサブフォームは即座に作成され、レイアウトビューに表示されます。
サブフォームは、メインフォームの他のフィールドの下のデータセットビューに表示されます。
サブフォームの詳細
サブフォームがさまざまなビューでどのように表示されるか、およびそのデータをどのように取得するかを見てみましょう。
-
フォームビュー
フォームビューに切り替えます(Accessの右下にあるフォームビューアイコンをクリックします)。
次のレコードをクリックしてメインフォームをナビゲートします フォームの下部にあるアイコン。
レコードをナビゲートすると、サブフォームの内容は、親フォームに関連付けられているレコードのみに更新されます。
-
デザインビュー
デザインビューに切り替えます(Accessの右下にあるデザインビューアイコンをクリックします)。
サブフォームは、データソースが表示されたボックスとして表示されます。この例では、データソースは Table.Albums です。 (つまり、 アルバム 表)。
デザインビューを使用して、サブフォームをカスタマイズできます。たとえば、プロパティシートを開くことができます(プロパティシートをクリックします)。 デザイン で リボンのタブ)、必要に応じてさまざまなプロパティを調整します。
-
サブフォームのソース
データをクリックします プロパティシートのタブには、サブフォームのソースと、サブフォームを親フォームにリンクするフィールドが表示されます。
ソースオブジェクト プロパティは、コントロールに表示されるオブジェクトを決定します。
リンク子フィールド プロパティは、サブフォーム内のどのフィールドがサブフォームを親フォームにリンクするかを指定します。
リンクマスターフィールド プロパティは、親フォームのどのフィールドが親フォームをサブフォームにリンクするかを指定します。
仕組み
このようなサブフォームの作成は、そのテーブルが関係の一部である場合にのみ機能します。 Accessは関係があることを確認するため、サブフォームを自動的に作成すると便利です。
より具体的には、テーブルは1対多の関係の「1つの」部分である必要があります。
「多くの」テーブルからフォームを作成する場合、サブフォームは取得されません。フォームは、選択したテーブルに基づく単純なフォームになります。
リレーションシップの一部ではないテーブルからフォームを作成する場合、サブフォームは必要ありません(別のテーブルに関連データがないため)。
サブフォームは、1対多の関係の「多くの」部分を表示するため(親フォームは「1つの」部分を表示する)、1対多のフォームと呼ばれることもあります。
サブフォームは、サブデータシートとも呼ばれます。
フォーム/サブフォームの組み合わせは、階層フォーム、マスター/詳細フォーム、または親/子フォームと呼ばれることもあります。
サブフォームと...サブフォーム
サブフォームウィザードを使用してサブフォームを作成すると、おそらく2つのフォームになります。メインフォームとサブフォーム。両方のフォームは フォーム の下に保存されます ナビゲーションペインのノード。
(上記の例のように)テーブルからサブフォームを作成する場合、余分なフォームは取得されません。これは、サブフォーム/サブレポートコントロールがテーブルから直接データを表示しているためです。
したがって、技術的には、これが実際にサブフォームなのか、単なるサブデータシートなのかを議論することができます。いずれにせよ、ユーザーに対して同じ結果が表示されます。
テーブルのすべてのフィールドを表示したくない場合は、クエリをソースオブジェクトとして使用するか、サブフォームウィザードを使用してサブフォームを作成できます。
サブフォームは必要ありませんか?
前述のように、Accessは、サブフォームを自動的に作成するときに役立つように努めています。
ただし、サブフォームが必要ない場合は、単に削除することができます。レイアウトビューまたはデザインビューに切り替え、サブフォームを右クリックして、削除を選択するだけです。 コンテキストメニューから。
既存のフォームにサブフォームを追加する
サブフォームを追加するフォームがすでにある場合は、サブフォームコントロールを追加して、既存のフォームにサブフォームを追加できます。