ここでは、次の内容について説明します。
Access データベースに目的の異なるテーブルを複数作成した場合、テーブル間にリレーションシップを定義するとデータをまとめて処理することができます。複数のテーブルのデータを一度に表示するクエリ、フォーム、およびレポートを作成できます。たとえば、次のフォームには、5 つのテーブルのデータが表示されます。
ページの先頭に戻る
前の例で、5 つのテーブルに含まれる各フィールドには、同じ受注に関する情報が表示される必要があります。これには、テーブル間にリレーションシップを設定します。リレーションシップは、2 つのテーブル間で同じ名前のフィールドのデータを照合することにより機能します。通常、照合フィールドは一方のテーブルの主キーと、他方のテーブルの外部キーです。主キーは、各レコードを識別する固有の識別子となります。たとえば、[社員コード] フィールドを使用して [社員] テーブルと [受注] テーブル間にリレーションシップを設定し、社員の氏名とその社員が担当した得意先名を関連付けることができます。
ページの先頭に戻る
一対多リレーションシップは、最も頻繁に使用されるリレーションシップです。一対多リレーションシップでは、テーブル A の 1 つのレコードはテーブル B の多数のレコードに対応し、テーブル B の 1 つのレコードはテーブル A の 1 つのレコードに対応します。
ページの先頭に戻る
多対多リレーションシップでは、テーブル A の 1 つのレコードは テーブル B の複数のレコードに対応し、テーブル B の 1 つのレコードはテーブル A の複数のレコードに対応します。多対多リレーションシップを定義するには、新規に結合テーブルを作成し、主キーとしてテーブル A およびテーブル B を参照する外部キーを設定します。外部キーは、テーブル A およびテーブル B の主キーと同じフィールドに設定します。多対多リレーションシップは、実際には結合テーブルを介した 2 つの一対多リレーションシップです。たとえば、次の例では、[受注] テーブルと [受注明細] テーブルの間、および [商品] テーブルと [受注明細] テーブルの間に、それぞれ一対多リレーションシップが定義されており、[受注] テーブルと [商品] テーブルの間には、[受注明細] テーブルを結合テーブルとして、多対多リレーションシップが定義されています。
ページの先頭に戻る
一対一リレーションシップでは、テーブル A の 各レコードはテーブル B の 1 つのレコードにだけ対応し、テーブル B の 各レコードはテーブル A の 1 つのレコードにだけ対応します。このように関連付けられたデータは、通常 1 つのテーブルに保存されるため、一対一リレーションシップはあまり一般的ではありません。一対一リレーションシップは、多数のフィールドがあるテーブルを分割したり、セキュリティを保つためにテーブルの一部を分離したり、またはメイン テーブルのサブセットにだけ適用される情報を保存するために使用されます。たとえば、次の例では、[社員] テーブルからサッカー選手だけを抽出し、新規に [サッカー選手] テーブルを作成します。
ページの先頭に戻る
リレーションシップを定義するには、関連付けるテーブルを [リレーションシップ] ウィンドウに追加し、あるテーブルからフィールドをドラッグして、それをその他のテーブルのフィールドにドロップします。キーボードを使用してリレーションシップを定義することもできます。
Access で作成されるリレーションシップの種類は、関連フィールドがどのように定義されているかによって異なります。
メモ 主キーでなく固有のインデックスがないフィールド間でドラッグした場合、未解決のリレーションシップが作成されます。未解決のリレーションシップでは、読み取り専用は設定されません。そのようなリレーションシップが定義されているテーブルを含むクエリでは、テーブル間に既定の結合線が表示されますが、レコードがいずれのテーブルでも固有であるとは限りません。
ページの先頭に戻る
テーブル間のリレーションシップを設定する に戻る。
Access プロジェクトのリレーションシップの詳細については、ここをクリックしてください。