Accessのフォーム連携:サブフォーム(Subform)とは?
サブフォーム(Subform)とは、Accessのフォーム内に別のフォーム(子フォーム)を埋め込む機能です。
主に親子関係(1対多)のデータを同時に表示・操作するために使用され、関連する複数の情報を1画面で効率よく管理できます。
主な用途
- 顧客情報(親フォーム)+注文履歴(サブフォーム)
- 商品情報(親フォーム)+在庫一覧(サブフォーム)
- 請求書(親フォーム)+明細行(サブフォーム)
サブフォームの仕組み
サブフォームは2つのフォーム(親フォームと子フォーム)を連携させ、
親側のキー(主キー)と子側のキー(外部キー)をリンクさせることで同期を実現します。
作成手順
- 親となるフォームを開く(または作成)
- [デザイン]タブ → [サブフォーム/サブレポート] コントロールを選択
- ドラッグしてフォーム上に配置
- 既存フォームを選択するか、新規作成して挿入
- 「リンク親フィールド」「リンク子フィールド」にキー項目を指定
- 保存して完了
リンクの例
- 親フォーム:顧客 → 主キー:[顧客ID]
- サブフォーム:注文 → 外部キー:[顧客ID]
- → 顧客を切り替えると、サブフォームに該当する注文のみ表示される
サブフォームの表示形式
- 連続フォーム型: 一覧として複数行表示(おすすめ)
- データシートビュー: Excelのような表形式で表示
- 単票フォーム: 詳細な表示・編集用にも活用可
メリット
- 親子関係のあるデータを1画面で操作できる
- ユーザーの視点で直感的なデータ入力が可能
- Accessのフォーム操作における実用性が高い機能
注意点
- リンクするフィールドのデータ型は一致している必要がある
- サブフォーム側は必ず外部キーとして親と紐づけられていること
- 複数のサブフォームを重ねるとフォームが重くなる場合あり
まとめ
- サブフォーム: フォーム内に別のフォームを埋め込み、親子関係のデータを連携表示
- 主キーと外部キーをリンクさせることで、自動的に連動
- 業務アプリケーションでのデータ入力・管理を効率化
サブフォームは、Accessで複雑なデータ構造を直感的に扱うための鍵となる機能です。
特に「1対多」の構造を扱う場面で、視認性と操作性を同時に高められる強力な仕組みです。