- アクセスHome
- 基礎から学ぶHome
- サブフォームを持つフォーム
サブフォームを持つフォーム
ここで学ぶこと
①サブフォームを使うメリットについて
②サブフォームを使用したフォームの作り方について
1.サブフォームについて
フォームの中に他のフォームを組み込む方法です。この仕組みを使うと一つのレコードを表示する単票式フォームに関係する情報一覧
(個人履歴、連絡記録など)を表示することができます。メインフォームのレコードが変わると、伴ってサブフォームの内容も変化します。
テーブルのリンク機能を利用した技術で、データベースシステムの醍醐味です。
2.作り方(手順)
(1)テーブルの準備
メインフォームに使用するテーブルとサブフォームに使用するテーブルが必要です。次の二つのテーブルを用意します。
- メインフォームに使用するテーブル[T_名簿]
- サブフォームに使用するテーブル[T_連絡記録]
- 二つのテーブル間にリレーションシップを作る。結合フィールドは[T_名簿]の「番号」と[T_連絡記録]の「名簿番号」です。
※リレーションシップの作り方はテーブル編の「テーブルの分離とリレーションシップ」の項を参照してください。
(2)単票フォームとサブフォームの二つのフォームを作成
- [T_名簿]テーブルを元にメインフォームとなる単票フォームを作成する。不要なフィールドは削除した。名前を[F_名簿メイン]とつけて保存する。
- テーブル[T_連絡記録]を基にしてサブフォーム用の表形式フォームを作成する。実用面では[連絡番号]と[名簿番号]のフィールドは表示する必要
はない(「連絡番号」はオートナンバーであり見えなくとも良い、また「名簿番号」はメインフォームの「番号」と同じとなる理由で)。従って、デザインビュー
に切り替えして「可視」プロパティを「いいえ」にして非表示にする。左に余白が出てしまうので、残ったフィールドは左に位置を移す。
- デザイン修正したフォームはこうなる。デザイン修正したフォームはこうなる。フォームを保存する。名前は[SF_連絡記録一覧]とする。
- フォーム[SF_連絡記録]のプロパティは次のように設定している。サブフォームとして使うために移動ボタン等を非表示にしシンプルにしてある。
(3)メインフォームにサブフォームを組み込む
- メインフォームをデザインビューで表示し、ツールボックスのコンとトールウイザードを「ON」にした状態で、「サブフォーム/サブレポート」コントロールを選択し、メインとなるフォーム上でクリックする。
サブフォームのコントロールウイザード画面が出たら、案内に沿って進める。
- 既存のフォームから[SF_連絡記録]を選択し、「次へ」。
- リンクする方法は「独自に設定する」を選び、メインフォームに[T_名簿]の主キー[番号]を、サブフォームに[名簿番号]を設定する。「次へ」
- 名前はそのままで「完了」する。
- メインフォームにサブフォームが追加された。大きさや位置は調整しよう。
- フォームビューに切り替えた。メインフォームおよびサブフォームの出来事を入力してみよう。メインフォームのレコードによって切り替わることが分かる。
(この項終わり)