サブフォームを使用し、アプリケーションに1対多の関係を構築
「1対1」の関係を設定するのはかんたんで、必要なものは検索フィールドだけです。ここでは、「1対多」の関係を設定するために役立つヒントをご紹介します。「1対多」の関係を構成するのは、「1」の側である親フォームと「多」の側である子フォームです。子フォームはメインフォームの一部となり、サブフォームと呼ばれます。
アプリケーションにサブフォームを追加
カスタマイズしたビジネスアプリケーションを構築するときは、さまざまな状況で親子関係を使用する必要が生じます。サブフォームを使えばわずか数分で解決できます。まず、通常のフォームと同様に子フォームを作成し、フィールドをすべて追加します。次に、メインフォームの作成に進みます。メインフォームにはフィールドと同じくサブフォームも追加できます。左のペインからフォームビルダーの領域にサブフォームをドラッグ&ドロップします。子フォームは、同じアプリケーション内から選択することも、別のアプリケーションから選択することもできます。


子レコードを追加
親フォーム本体にサブフォームが挿入されます。一度に複数の子レコードをサブフォームに追加できます。アクセスモードでは、サブフォームが表形式のレイアウトで表示されます。[新規追加]リンクをクリックして、レコードを1件ずつ追加できます。レコードごとに表に1行追加されます。レコードの追加中であっても、追加したくない行があれば削除できます。フォーム内だけでなくレコードの編集中でも、サブフォームに子レコードを追加できます。
子レコードを表示
統合ビューには子レコードが対応する親レコードとともに表示されます。各行には、親レコードに関連付けられている子レコードがリンクとして表示されます。このリンクをクリックすると、ポップアップウィンドウで子レコードの詳細が開きます。親レコードのレコード概要には、親レコードだけでなく子レコードの詳細も表示されます。ビューの設計モードから、サブフォームのどのフィールドを統合ビューに表示する必要があるかを選択できます。


サブフォーム用のDelugeイベント
サブフォームには、「On Add Row」と「On Delete Row」という2つの新しい専用イベントが用意されています。「On Add row」イベントは、親フォームに新規の子レコードが追加されるたびに起動し、「On Delete row」は、親フォームから子レコードが削除されるたびに起動します。サブフォーム自体を対象にこれらのイベントのビジネスルールを指定することも、サブフォームに含まれるフィールド用のワークフローを含めることもできます。子フォームのフィールドにユーザーが値を入力すると実行されるアクションは、親フォームで指定できます。