リレーションシップを使用する

テーブルのリレーションシップの使用を開始する

Surface Book デバイスの写真

演習

リレーショナル データベースを使用すると、テーブル間でデータを組み合わせることができます。 そのためには、最初にテーブル間のリレーションシップを確立する必要があります。 次に、Access 使用して、クエリ、フォーム、レポート内のデータを組み合わせます。

データベースに対して定義された既存のリレーションシップをすべて表示するには、Access テンプレートを開いて、[データベース ツール] タブに移動し、[リレーションシップ] を選びます。

注: 空のデータベースまたはテーブルのリレーションシップが定義されていないデータベースを開いた場合、Access は、テーブルまたはクエリを追加するように要求します。 リレーションシップを追加するには、2 つ以上のテーブルが必要です。 理想的には、最初にすべてのテーブルを作成します。 詳細については、「ルックアップ ウィザードを使ってリレーションシップを作成する」および「リレーションシップ ウィンドウを使ってリレーションシップを作成する」を参照してください。

リレーションシップ ビューについて

リレーションシップ ビュー内の線は、テーブル間のつながりを示します。 次の図で、左側のテーブルは親テーブルです。 右側のテーブルは、子テーブルです。 これらのテーブルの間にある線は、データを一致させるために使用されるフィールド (この場合は、注文 ID と製品 ID) をつなぎます。

リレーションシップは、親フィールドと子フィールドを結ぶ線で示されます。

テーブル間の関係を示す線と記号は、次のとおりです。

  • 太い接続線は、データの参照整合性が適用されていることを意味します。 これは適切です。 データの同期が保たれます。

  • この図で、数字 1 は、そのテーブルには一致するレコードが 1 つしか存在できないことを示します。 ここに示す受注テーブルでは、各注文と一致するレコードは 1 つのみです。

  • 無限大 (∞) 記号は、複数のレコードに同じ ID を含められることを示します。 ここに示す受注の詳細テーブルでは、同じ注文に複数の製品を含めることができるので、注文 (注文 ID で示される) が複数回表示される可能性があります。

テーブル間のリレーションシップの種類

テーブル間のリレーションシップには、次の 3 種類があります。

  • 一対一。 各テーブル内の各項目が 1 回のみ表示される場合。 たとえば、各従業員が使用できる社用車は 1 台のみです。 詳細については、「Create one-to-one relationships (一対一リレーションシップを作成する)」を参照してください。

  • 一対多。 一方のテーブル内の 1 つの項目が他方のテーブル内の複数の項目とリレーションシップを持つことができる場合。 たとえば、1 つの発注書で複数の製品を発注する場合があります。

  • 多対多。 一方のテーブル内の 1 つ以上の項目が他方のテーブル内の 1 つ以上の項目とリレーションシップを持つことができる場合。 たとえば、1 つの注文で複数の製品を注文したり、1 つの製品が多数の注文に表示されたりする場合があります。 詳細については、「Create many-to-many relationships (多対多リレーションシップの作成)」を参照してください。

一対多リレーションシップ

適切に設計されたデータベースのテーブル間で最も一般的なリレーションシップの 1 つは、一対多リレーションシップです。

テーブル間のリレーションシップは、通常、一方のテーブルの主キーに依存します。 主キーは、各レコードの一意の識別子 (多くの場合、数値) であることを思い出してください。 2 つの異なるテーブル内の情報が関係していることを示すには、通常、一方のテーブルの主キーを使用してリレーションシップを作成します。

たとえば、次に示すリレーションシップで、連絡先テーブルの各連絡先には ID があり、それが主キーになります (横にある鍵の記号で示されます)。 この ID は、資産テーブルの所有者フィールドにも表示されます。 資産に関連付けられた連絡先にメールを送信するには、電子メール アドレス フィールドから値を取得します。 そのためには、資産テーブルの所有者フィールドで値を検索し、連絡先テーブルでその ID を検索します。 接続線の一方の端にある数字 1 と他方の端にある無限大 (∞) 記号は、これが一対多リレーションシップであり、1 つの連絡先を多数の資産と関連付けられることを示しています。

一対多リレーションシップ

リレーションシップを編集する

既存のデータベースを変更する場合、またはデータベースをテンプレートから作成した場合、既存のリレーションシップをニーズに合わせて編集できます。

注: 操作するテーブルが使用中の場合は、最初にそのテーブルとそのテーブルを使用する開かれたオブジェクトをすべて閉じます。

  1. [データベース ツール]、[リレーションシップ] の順に選択します。

  2. 関連する 2 つのテーブルをつなぐ線を選びます。

    ヒント: 目的のリレーションシップが表示されない場合は、[デザイン] タブの [リレーションシップ] グループで、[すべてのリレーションシップ] を選択します。

  3. [デザイン] タブで [リレーションシップの編集] を選択します。

    テーブル間の既存のリレーションシップの編集

    左側の [テーブル/クエリ] は親テーブルです (この例では、"顧客")。

    [リレーション テーブル/クエリ] は子テーブルです (この例では、"注文")。

    リレーションシップ ビューでテーブルがこの順序で表示されない場合でも、ダイアログ ボックス内の配置は、それらのテーブルをつなぐ線の方向とリレーションシップを示します。 たとえば、一対多リレーションシップの場合、左側のテーブルが一 (親テーブル) で、右側のテーブルが多 (子テーブル) であることを示すので、この配置は重要です。

  4. テーブルを接続するフィールドを変更するには、表示されている各テーブルの下で別のフィールドを選びます。 この例では、顧客テーブルの ID フィールドを受注テーブルの顧客 ID フィールドに接続します。

  5. Access がテーブル間でデータを同期する方法を変更します。

    参照適合性

    無効なデータを防止し、テーブル リレーションシップ間で参照の同期を保つには、これを選びます。

    たとえば、従業員テーブルと従業員手当テーブルの間に一対一リレーションシップがあるとします。 従業員が退職し、その従業員を従業員テーブルから削除すると、従業員手当テーブルの関連する従業員レコードも削除されます。

    参照整合性を適用しても意味がない場合があります。 たとえば、運送会社と注文の間に一対多リレーションシップがあるとします。 運送会社を削除した後に、その運送会社を注文テーブル内の注文にマップすると、それらの注文は孤立します。 つまり、注文に運送会社 ID が含まれていても、その ID で参照されるレコードは既に存在しないので、その ID は有効ではなくなっています。

    フィールドの連鎖更新

    関連するフィールド内のデータが関連するすべてのテーブルで更新されるようにするには、これを選びます。

    たとえば、運送会社の ID のみを変更するとしましょう。 このオプションを設定すると、運送会社テーブル内だけでなく、これに接続され、さらにその運送会社 ID を含む他のすべてのテーブル (例えば、注文テーブルなど) の運送会社 ID が更新されます。

    レコードの連鎖削除

    このオプションを選択するかどうかは、レコードが他のテーブルから削除されても、一部のテーブルではそのレコードを保持する必要があるかどうかによって決まります。

    たとえば、ある運送会社を削除するとしましょう。 このオプションを選択すると、Access は、その運送会社から出荷されるすべての注文 (注文テーブル内) など、その運送会社 ID を参照するすべてのテーブルのすべてのレコードを削除します。 注文履歴を削除してもよいことがわかっている場合のみ、このオプションを選びます。

  6. テーブル間のリレーションシップを内部結合から外部結合に変更するには、[結合の種類] ボタンを選びます。 詳細については、「Create queries with outer joins (外部結合を使ってクエリを作成する)」を参照してください。

テーブル リレーションシップを削除する

注: 操作するテーブルが使用中の場合は、最初にそのテーブルとそのテーブルを使用する開かれたオブジェクトをすべて閉じます。

テーブル リレーションシップを削除するには、次の手順を実行します。

  1. [データベース ツール]、[リレーションシップ] の順に選択します。

  2. 関連する 2 つのテーブルをつなぐ線を選びます。

    ヒント: 目的のリレーションシップが表示されない場合は、[デザイン] タブの [リレーションシップ] グループで、[すべてのリレーションシップ] を選択します。

  3. Del キーを選択します。 リレーションシップを削除することを確認するメッセージが表示されたら、[はい] を選びます。

注: リレーションシップを削除すると、そのリレーションシップに対して参照整合性が選択されている場合、そのサポートも削除されます。 その結果、Access は変更を防止しなくなり、一対多リレーションシップでレコードの孤立が発生します。

さらに詳しく

リレーションシップを作成、編集、または削除する

お時間を最大限に活用するためのサブスクリプション

ヘルプを表示

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×