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

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

Access のリレーションシップにより、2 つの異なるテーブルのデータを組み合わせることができます。 各リレーションシップは、対応するデータを含む 2 つのテーブルのフィールドで構成されます。 たとえば、[商品] テーブルと [受注明細] テーブルに [商品 ID] フィールドがあるとします。 [受注明細] テーブルの各レコードには、商品 ID を含む [商品] テーブルのレコードと同じ商品 ID があります。

クエリで関連するテーブルを使用すると、リレーションシップによって、各テーブルのどのレコードを組み合わせて結果セットに表示するかが決まります。 リレーションシップにより、削除したデータが同期されるようになるので、データが失われるのを防ぐこともできます。これは参照整合性と呼ばれます。

リレーションシップを使用する前に、背景の概念を理解しておいてください。 詳細については、「テーブルのリレーションシップの概要」と「テーブルのリレーションシップの使用を開始する」を参照してください。

この記事の内容

概要

リレーションシップ ウィンドウを使用してテーブル リレーションシップを作成する

[フィールド リスト] ウィンドウを使用してテーブル リレーションシップを作成する

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

参照整合性を適用する

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

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

Access 2010 Web データベースのリレーションシップを作成または変更する

概要

Access データベースでは、次のいずれかの方法を使用してテーブル リレーションシップを作成します。

  • リレーションシップ ウィンドウに関連付けるテーブルを追加し、一方のテーブルから他方のテーブルにフィールドをドラッグして関連付けます。

  • フィールドを [フィールド リスト] ウィンドウからテーブルのデータシートにドラッグします。

テーブル間にリレーションシップを作成する場合、共通のフィールドが同じ名前である必要はありません。ただし、多くの場合、同じ名前になっています。 共通のフィールドには、同じデータ型を使用する必要があります。 ただし、主キー フィールドがオートナンバー型フィールドの場合は、外部キー フィールドを数値型のフィールドにすることもできますが、両方のフィールドの "FieldSize/フィールドサイズ" プロパティが同じである必要があります。 たとえば、両方のフィールドの "FieldSize/フィールドサイズ" プロパティが [長整数型] の場合、オートナンバー型フィールドと数値型のフィールドを一致させることができます。 両方の共通のフィールドが数値型のフィールドの場合は、"FieldSize/フィールドサイズ" プロパティの設定を同じにする必要があります。

ページの先頭へ

リレーションシップ ウィンドウを使用してテーブル リレーションシップを作成する

  1. [データベース ツール] タブの [リレーションシップ] グループで [リレーションシップ] をクリックします。

  2. リレーションシップが 1 つも定義されていない場合は、[テーブルの表示] ダイアログ ボックスが自動的に表示されます。 表示されない場合は、[デザイン] タブの [リレーションシップ] で [テーブルの表示] をクリックします。

    [テーブルの表示] ダイアログ ボックスには、データベース内のすべてのテーブルとクエリが表示されます。 テーブルだけを表示するには、[テーブル] をクリックします。 クエリだけを表示するには、[クエリ] をクリックします。 両方を表示するには、[両方] をクリックします。

  3. 1 つ以上のテーブルまたはクエリを選択し、[追加] をクリックします。 テーブルとクエリを [リレーションシップ] ドキュメント タブに追加したら、[閉じる] をクリックします。

  4. 1 つのテーブルのフィールド (通常は主キー) を、別のテーブルにおける共通のフィールド (外部キー) にドラッグします。 複数のフィールドをドラッグするには、Ctrl キーを押しながら各フィールドをクリックし、ドラッグします。

    [リレーションシップの編集] ダイアログ ボックスが表示されます。
    [リレーションシップの編集] ダイアログ ボックス

  5. 表示されたフィールド名が、リレーションシップを作成する共通のフィールドであることを確認します。 フィールド名が正しくない場合は、問題のフィールド名をクリックし、一覧から適切なフィールドを選びます。

    このリレーションシップに参照整合性を適用するには、[参照整合性] チェック ボックスをオンにします。 参照整合性の詳細については、「参照整合性を適用する」を参照してください。

  6. [作成] をクリックします。

    2 つのテーブルの間には、リレーションシップ ラインが描画されます。 [参照整合性] チェック ボックスをオンにすると、ラインの両端が太く表示されます。 また、同様に [参照整合性] チェック ボックスをオンにした場合に限り、次の図に示すように、リレーションシップの一方の太い部分の上に "1" が表示され、ラインの反対側の太い部分の上に無限大記号 () が表示されます。

    1 つのテーブルのフィールドを、別のテーブル内の一致するフィールドまでドラッグします。

    注: 

    • 一対一リレーションシップを作成するには    共通のフィールドの両方 (通常は主キー フィールドと外部キー フィールド) に固有インデックスが設定されている必要があります。 つまり、これらのフィールドの "Indexed/インデックス" プロパティが [はい(重複なし)] に設定されている必要があります。 両方のフィールドに一意のインデックスが設定されていれば、Access で一対一リレーションシップが作成されます。

    • 一対多リレーションシップを作成するには    リレーションシップの一の側のフィールド (通常は主キー) に固有インデックスが設定されている必要があります。 つまり、このフィールドの "Indexed/インデックス" プロパティが [はい(重複なし)] に設定されている必要があります。 多の側のフィールドには、一意のインデックスを設定することはできません。 インデックスを付けることはできますが、重複を許可する必要があります。 つまり、このフィールドの "Indexed/インデックス" プロパティは、[いいえ] または [はい (重複あり)] のいずれかに設定されている必要があります。 一方のフィールドに固有インデックスが設定されており、もう一方のフィールドに固有インデックスが設定されていない場合、Access で一対多リレーションシップが作成されます。

ページの先頭へ

[フィールド リスト] ウィンドウを使用してテーブル リレーションシップを作成する

[フィールド リスト] ウィンドウからフィールドをドラッグすることにより、データシート ビューで表示されている既存のテーブルにフィールドを追加できます。 [フィールド リスト] ウィンドウには、関連するテーブルに存在するフィールドと、データベース内の他のテーブルに存在するフィールドが表示されます。

"他" の (関連付けられていない) テーブルからフィールドをドラッグし、ルックアップ ウィザードを完了すると、[フィールド リスト] ウィンドウ内のテーブルとフィールドのドラッグ先のテーブルとの間に、新しい一対多リレーションシップが自動的に作成されます。 Access によって作成されたこのリレーションシップには、既定では参照整合性が適用されません。 参照整合性を適用するには、リレーションシップを編集してください。 詳しくは、「リレーションシップを編集する」を参照してください。

テーブルをデータシート ビューで開く

  • ナビゲーション ウィンドウでテーブルをダブルクリックします。

[フィールド リスト] ウィンドウを開く

  • Alt キーを押しながら F8 キーを押します。 [フィールド リスト] ウィンドウが表示されます。

    [フィールド リスト] ウィンドウ

[フィールド リスト] ウィンドウには、データベース内の他のテーブルがすべてカテゴリ別にグループ分けされて表示されます。 データシート ビューでテーブルを操作する場合、各フィールドは [フィールド リスト] ウィンドウの [リレーション テーブルで利用可能なフィールド] と [他のテーブルで利用可能なフィールド] の 2 つのカテゴリのいずれかに表示されます。 1 つ目のカテゴリには、現在作業中のテーブルとリレーションシップを持つテーブルがすべて表示されます。 2 つ目のカテゴリには、現在作業中のテーブルとのリレーションシップがないテーブルがすべて表示されます。

[フィールド リスト] ウィンドウで、テーブル名の横にあるプラス記号 (+) をクリックすると、テーブルで利用可能なフィールドがすべて一覧表示されます。 テーブルにフィールドを追加するには、目的のフィールドを [フィールド リスト] ウィンドウから、データシート ビューのテーブルにドラッグします。

[フィールド リスト] ウィンドウからフィールドを追加してリレーションシップを作成する

  1. データシート ビューでテーブルを開いた状態で、Alt キーを押しながら F8 キーを押します。 [フィールド リスト] ウィンドウが表示されます。

  2. [他のテーブルで利用可能なフィールド] で、テーブル名の横にあるプラス記号 (+) をクリックして、テーブル内にあるフィールドの一覧を表示します。

  3. 目的のフィールドを [フィールド リスト] ウィンドウから、データシート ビューで開いているテーブルにドラッグします。

  4. 挿入位置が表示されたら、フィールドをその位置にドロップします。

    ルックアップ ウィザードが起動します。

  5. 表示される手順に従って、ルックアップ ウィザードを完了します。

    目的のフィールドがデータシート ビューのテーブルに表示されます。

"他" の (関連付けられていない) テーブルからフィールドをドラッグし、ルックアップ ウィザードを完了すると、[フィールド リスト] 内のテーブルとフィールドのドラッグ先のテーブルとの間に、新しい一対多リレーションシップが自動的に作成されます。 Access によって作成されたこのリレーションシップには、既定では参照整合性が適用されません。 参照整合性を適用するには、リレーションシップを編集してください。 詳しくは、「リレーションシップを編集する」を参照してください。

ページの先頭へ

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

リレーションシップを変更するには、リレーションシップ ウィンドウでリレーションシップを選択して編集します。

  1. マウス ポインターを慎重に移動してリレーションシップ ラインをポイントし、そのラインをクリックして選択します。

    選択されたリレーションシップ ラインは太い線で表示されます。

  2. リレーションシップ ラインが選択されている状態で、そのラインをダブルクリックします。

    または

    [デザイン] タブの [ツール] で [リレーションシップ] をクリックします。

[リレーションシップ] ダイアログ ボックスが表示されます。

[リレーションシップ] ダイアログ ボックスを開く

  1. [データベース ツール] タブの [リレーションシップ] グループで [リレーションシップ] をクリックします。

    リレーションシップ ウィンドウが表示されます。

    まだリレーションシップを定義したことがなく、初めてリレーションシップ ウィンドウを開いた場合は、[テーブルの表示] ダイアログ ボックスが表示されます。 ダイアログ ボックスが表示されたら、[閉じる] をクリックします。

  2. [デザイン] タブの [リレーションシップ] で [すべてのリレーションシップ] をクリックします。

    リレーションシップが設定されているすべてのテーブルが、リレーションシップ ラインと共に表示されます。 ただし、隠しテーブル (テーブルの [プロパティ] ダイアログ ボックスで [隠しオブジェクト] チェック ボックスがオンになっているテーブル) とそれらのリレーションシップは、[ナビゲーション オプション] ダイアログ ボックスで [隠しオブジェクトの表示] チェック ボックスをオンにしない限り表示されません。

  3. 変更するリレーションシップのリレーションシップ ラインをクリックします。 選択されたリレーションシップ ラインは太い線で表示されます。

  4. リレーションシップ ラインをダブルクリックします。

    または

    [デザイン] タブの [ツール] で [リレーションシップ] をクリックします。

    [リレーションシップ] ダイアログ ボックスが表示されます。

    [リレーションシップの編集] ダイアログ ボックス

  5. 必要な変更を行って、[OK] をクリックします。

    [リレーションシップ] ダイアログ ボックスでは、テーブルのリレーションシップを変更することができます。 具体的には、リレーションシップの両側のテーブルやクエリ、または両側のフィールドを変更できます。 また、結合の種類を設定したり、参照整合性を適用して連鎖オプションを選択したりもできます。 結合の種類とその設定方法の詳細については、「結合の種類を設定する」を参照してください。 参照整合性を適用して連鎖オプションを選択する方法の詳細については、「参照整合性を適用する」を参照してください。

結合の種類を設定する

テーブルのリレーションシップを定義すると、リレーションシップの情報がクエリ デザインに反映されます。 たとえば、2 つのテーブル間にリレーションシップを定義した後、それらの 2 つのテーブルを使用するクエリを作成すると、リレーションシップで指定されているフィールドを基に、既定の一致フィールドが自動的に選択されます。 このようなクエリの初期の既定値は上書きできますが、リレーションシップによって設定された値が適切であったことに後で気付くこともよくあります。 複数のテーブルのデータを一致させて同時に取り出す操作は、ごく単純なデータベースを除くほとんどのデータベースで頻繁に実行されるため、リレーションシップを作成することで既定値が設定されれば、時間を節約できて便利です。

複数テーブルのクエリでは、共通のフィールドの値を一致させることによって、1 つ以上のテーブルの情報を組み合わせます。 一致や組み合わせを行う操作は、結合と呼ばれます。 たとえば、得意先の受注情報を表示する必要があるとします。 そこで、[得意先] テーブルと [受注] テーブルを [得意先 ID] フィールドで結合するクエリを作成します。 クエリ結果には、該当する一致が見つかった行に対する得意先情報と受注情報が含まれます。

リレーションシップごとに指定できる値の 1 つに、結合の種類があります。 結合の種類は、どのレコードをクエリ結果に含めるかを Access に指示するものです。 たとえば、[得意先] テーブルと [受注] テーブルを共通の [得意先 ID] フィールドで結合するクエリについて、もう一度考えます。 既定の結合の種類 (内部結合) を使用した場合は、共通のフィールド (結合フィールド) が等しい [得意先] の行と [受注] の行だけがクエリから返されます。

しかし、まだ 1 度も注文していない得意先も含め、すべての  [得意先] の行を取得したい場合もあります。 これを実現するには、結合の種類を内部結合から左外部結合に変更してください。 左外部結合では、リレーションシップの左側のテーブルからはすべての行が返され、右側のテーブルからは一致する行だけが返されます。 右外部結合では、右側の行のすべてと、左側の一致する行だけが返されます。

注: この場合、"左" および "右" は、リレーションシップ ウィンドウでのテーブルの位置ではなく、[リレーションシップ] ダイアログ ボックスでのテーブルの位置を示します。

リレーションシップを設定するときは、そのリレーションシップに基づいてテーブルを結合するクエリの結果を考慮して、適切な結合の種類を設定する必要があります。

結合の種類を設定する

  1. [リレーションシップ] ダイアログ ボックスで、[結合の種類] をクリックします。

    [結合プロパティ] ダイアログ ボックスが表示されます。

  2. 適切なオプションをクリックし、[OK] をクリックします。

次の表は、[得意先] テーブルと [受注] テーブルを使用した場合に [結合プロパティ] ダイアログ ボックスに表示される 3 つのオプションと、それぞれのオプションで使用される結合の種類、および各テーブルに対してすべての行または一致する行のどちらが返されるかを示しています。

選択肢

リレーショナル結合

左テーブル

右テーブル

1. 両方のテーブルの結合フィールドが同じ行だけを含める。

内部結合

一致する行

一致する行

2. [得意先] の全レコードと [受注] の同じ結合フィールドのレコードだけを含める。

左外部結合

すべての行

一致する行

3. [受注] の全レコードと [得意先] の同じ結合フィールドのレコードだけを含める。

右外部結合

一致する行

すべての行

オプション 2 またはオプション 3 を選択すると、リレーションシップ ラインに矢印が表示されます。 この矢印の向きは、リレーションシップの一致する行だけを表示する側を指します。

[結合プロパティ] ダイアログ ボックスで変更する

  1. [データベース ツール] タブの [リレーションシップ] グループで [リレーションシップ] をクリックします。

    注:  まだリレーションシップを定義したことがなく、初めてリレーションシップ ウィンドウを開いた場合は、[テーブルの表示] ダイアログ ボックスが表示されます。 ダイアログ ボックスが表示されたら、[閉じる] をクリックします。

  2. [デザイン] タブの [リレーションシップ] で [すべてのリレーションシップ] をクリックします。

    リレーションシップが設定されているすべてのテーブルが、リレーションシップ ラインと共に表示されます。 ただし、隠しテーブル (テーブルの [プロパティ] ダイアログ ボックスで [隠しオブジェクト] チェック ボックスがオンになっているテーブル) とそれらのリレーションシップは、[ナビゲーション オプション] ダイアログ ボックスで [隠しオブジェクトの表示] チェック ボックスをオンにしない限り表示されません。

  3. 変更するリレーションシップのリレーションシップ ラインをクリックします。 選択されたリレーションシップ ラインは太い線で表示されます。

  4. リレーションシップ ラインをダブルクリックします。 [リレーションシップ] ダイアログ ボックスが表示されます。

  5. [結合の種類]をクリックします。

  6. [結合プロパティ] ダイアログ ボックスで、いずれかのオプションをクリックし、[OK] をクリックします。
    [結合プロパティ] ダイアログ ボックス

  7. 必要に応じてリレーションシップに変更を加え、[OK] をクリックします。

ページの先頭へ

参照整合性を適用する

参照整合性の目的は、存在しない他のレコードを参照する孤立したレコードを防ぐことです。 参照整合性を適用するには、テーブルのリレーションシップで参照整合性を有効にします。 いったん有効にすると、テーブルのリレーションシップに設定した参照整合性に違反する操作はすべて拒否されるようになります。 つまり、参照先を変更する更新操作と、参照先を削除する操作の両方が拒否されます。 参照の更新や削除を反映して、関連するすべての行が適切に変更されるようにするには、「連鎖オプションを設定する」を参照してください。

参照整合性を有効または無効にする

  1. [データベース ツール] タブの [リレーションシップ] グループで [リレーションシップ] をクリックします。

  2. [デザイン] タブの [リレーションシップ] グループで、[すべてのリレーションシップ] をクリックします。

    リレーションシップが設定されているすべてのテーブルが、リレーションシップ ラインと共に表示されます。 ただし、隠しテーブル (テーブルの [プロパティ] ダイアログ ボックスで [隠しオブジェクト] チェック ボックスがオンになっているテーブル) とそれらのリレーションシップは、[ナビゲーション オプション] ダイアログ ボックスで [隠しオブジェクトの表示] チェック ボックスをオンにしない限り表示されません。

  3. 変更するリレーションシップのリレーションシップ ラインをクリックします。 選択されたリレーションシップ ラインは太い線で表示されます。

  4. リレーションシップ ラインをダブルクリックします。 [リレーションシップ] ダイアログ ボックスが表示されます。

  5. [参照整合性] チェック ボックスをオンまたはオフにします。

  6. 必要に応じてリレーションシップに変更を加え、[OK] をクリックします。

参照整合性を有効にすると、次の規則が適用されます。

  • 主テーブルの主キー フィールドに存在しない値を、関連テーブルの外部キー フィールドに入力することはできません。 このような操作は、孤立化したレコードが作成される原因となります。

  • 一致するレコードが関連テーブルに存在している場合、そのレコードを主テーブルから削除することはできません。 たとえば、[受注] テーブルに担当社員として入力されている社員のレコードを [社員] テーブルで削除することはできません。 ただし、[レコードの連鎖削除] チェック ボックスをオンにすると、主レコードすべての関連レコードを 1 回の操作で削除できるようになります。

  • 主テーブルの主キーの値を変更すると孤立したレコードが作成される結果になる場合、その値を変更することはできません。 たとえば、[受注明細] テーブルで品目が関連付けられている受注について、[受注] テーブルの受注番号を変更することはできません。 ただし、[フィールドの連鎖更新] チェック ボックスをオンにすると、主レコードすべての関連レコードを 1 回の操作で更新できるようになります。

    注: 参照整合性を有効にできない場合、参照整合性を適用するためには、次の条件を満たす必要があることに注意してください。

    • 主テーブルの共通のフィールドが主キーであるか、または固有インデックスが設定されていること。

    • 共通のフィールドが同じデータ型であること。 例外として、オートナンバー型フィールドは、"FieldSize/フィールドサイズ" プロパティが [長整数型] に設定されている数値型フィールドに関連付けることができます。

    • 両方のテーブルが同じ Access データベースに存在していること。 参照整合性はリンク テーブルには適用できません。 ただし、ソース テーブルが Access 形式の場合は、それらのテーブルが格納されているデータベースを開き、そのデータベース内で参照整合性を有効にできます。

連鎖オプションを設定する

状況によっては、リレーションシップの "一" 側の値をどうしても変更する必要が生じることがあります。 このような場合は、1 回の操作で、関連するすべての行が自動的に更新されるようにしてください。 この方法であれば更新が完全に完了するので、データベースに更新された行と更新されていない行が混在するような矛盾した状態になることはありません。 Access では、この問題を回避するために、フィールドの連鎖更新オプションがサポートされています。 参照整合性を適用し、フィールドの連鎖更新オプションを有効にすると、主キーを更新した場合に、その主キーを参照しているすべてのフィールドが自動的に更新されます。

また、1 つの行と関連するすべてのレコードを削除しなければならない場合があります  (たとえば、特定の運送会社レコードとその運送会社に関連するすべてのレコードを削除する必要がある場合)。 このため、Access では、[レコードの連鎖削除] オプションがサポートされています。 参照整合性を適用し、[レコードの連鎖削除] チェック ボックスをオンにすると、主キーを含むレコードを削除した場合に、その主キーを参照しているすべてのレコードが自動的に削除されます。

連鎖更新や連鎖削除を有効または無効にする

  1. [データベース ツール] タブの [リレーションシップ] グループで [リレーションシップ] をクリックします。

  2. [デザイン] タブの [リレーションシップ] グループで、[すべてのリレーションシップ] をクリックします。

    リレーションシップが設定されているすべてのテーブルが、リレーションシップ ラインと共に表示されます。 ただし、隠しテーブル (テーブルの [プロパティ] ダイアログ ボックスで [隠しオブジェクト] チェック ボックスがオンになっているテーブル) とそれらのリレーションシップは、[ナビゲーション オプション] ダイアログ ボックスで [隠しオブジェクトの表示] チェック ボックスをオンにしない限り表示されません。

  3. 変更するリレーションシップのリレーションシップ ラインをクリックします。 選択されたリレーションシップ ラインは太い線で表示されます。

  4. リレーションシップ ラインをダブルクリックします。

    [リレーションシップ] ダイアログ ボックスが表示されます。

  5. [参照整合性] チェック ボックスをオンにします。

  6. [フィールドの連鎖更新] チェック ボックスと [レコードの連鎖削除] チェック ボックスの一方または両方をオンにします。

  7. 必要に応じてリレーションシップに変更を加え、[OK] をクリックします。

注: 主キーがオートナンバー型フィールドである場合、オートナンバー型フィールドでは値の変更ができないので、[フィールドの連鎖更新] チェック ボックスをオンにしても効果はありません。

ページの先頭へ

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

重要: リレーションシップを削除すると、そのリレーションシップで参照整合性が有効になっている場合は、参照整合性のサポートも削除されます。 結果として、リレーションシップの "多" 側に孤立したレコードが作成されるのを自動的に防止することはできなくなります。

テーブルのリレーションシップを削除するには、リレーションシップ ウィンドウでリレーションシップ ラインを削除してください。 マウス ポインターを移動してリレーションシップ ラインをポイントし、そのラインをクリックします。 選択されたリレーションシップ ラインは太い線で表示されます。 リレーションシップ ラインが選択されている状態で、Del キーを押します。

  1. [データベース ツール] タブの [リレーションシップ] グループで [リレーションシップ] をクリックします。

  2. [デザイン] タブの [リレーションシップ] グループで、[すべてのリレーションシップ] をクリックします。

    リレーションシップが設定されているすべてのテーブルが、リレーションシップ ラインと共に表示されます。 ただし、隠しテーブル (テーブルの [プロパティ] ダイアログ ボックスで [隠しオブジェクト] チェック ボックスがオンになっているテーブル) とそれらのリレーションシップは、[ナビゲーション オプション] ダイアログ ボックスで [隠しオブジェクトの表示] チェック ボックスをオンにしない限り表示されません。

  3. 削除するリレーションシップのリレーションシップ ラインをクリックします。 選択されたリレーションシップ ラインは太い線で表示されます。

  4. Del キーを押します。

  5. "選択したリレーションシップをデータベースから削除しますか?" というメッセージが Access から表示されることがあります。 この確認メッセージが表示されたら、[はい] をクリックします。

注: テーブルのリレーションシップで参照されているテーブルのいずれかが、他のユーザーやプロセス、または開かれているデータベース オブジェクト (フォームなど) によって使用されている場合、そのリレーションシップを削除することはできません。 リレーションシップの削除を試みる前に、該当するテーブルを参照しているオブジェクトをすべて閉じる必要があります。

ページの先頭へ

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

Access Web アプリでリレーションシップを使用する場合は、重要な違いがあります。

リレーションシップを作成する

[リレーションシップ] ウィンドウは、Access Web アプリでは使用できません。 Access Web アプリでリレーションシップを作成する代わりに、別のテーブルの関連フィールドから値を取得するルックアップ フィールドを作成します。 たとえば、"従業員" テーブルがあり、各従業員が働く地域を表示できるように、"地域" テーブルにルックアップを追加するとします。

注:  ルックアップで値のソースとして使用するフィールドは、ルックアップ フィールドを作成する前には存在している必要があります。

Access Web アプリでルックアップ フィールドを作成する方法を説明します。

  1. 新しいルックアップ フィールドを作成するテーブルを、ナビゲーションでダブルクリックして開きます (ヒント: [ホーム]、ナビゲーション ウィンドウの順にクリックすると、利用可能な表を表示できます)。

    上の例では、"従業員" テーブルをクリックします。

  2. テーブル内の最終フィールドの直下にある [フィールド名] 列をクリックし、新しいルックアップ フィールドの名前を入力します。

    この例では、フィールド名として「地域」と入力します。

  3. [データ型] 列で、矢印をクリックして [ルックアップ] を選びます。

    ルックアップ フィールドのルックアップ データ型の設定

    ルックアップ ウィザードが起動します。

  4. ルックアップ ウィザードの最初のページで、[ルックアップ フィールドの値を他のテーブルまたはクエリから取得します] を選びます。 ダイアログ ボックスに、その他のオプションが表示されます。

  5. ルックアップの値の取得元になるテーブルまたはクエリの名前を選びます。

    この例では、[テーブル: 地域] を選びます。

    ルックアップ ウィザードで選択するオプション

    (画像のテーブルの名前は、使用中の例に応じて変わります。)

  6. テーブルを選んだら、[ルックアップに表示する値は何ですか?] ボックスの一覧を使用して、ルックアップ フィールドの表示値として使用するフィールドを選びます。 Access では、既定で、選択されたテーブルで見つかった最初のテキスト フィールドが表示されます。

    この例では、選択されたフィールド "タイトル" を表示値としてそのまま使用します。

  7. 必要に応じて、[ルックアップの項目を並べ替えますか?] リストを使用して、並べ替えを設定します。

  8. ["地域" テーブルのレコードを削除したときの動作を指定してください。 ] で、2 つのテーブル間のリレーションシップのタイプと、参照整合性を適用するかどうかを設定します (該当するテーブルの名前は、手順 5 で選んだテーブルに応じて変わります)。

    ルックアップ ウィザードの既定の動作は、[対応するレコードが "従業員" テーブルにある場合は、削除しません。] に設定されています。これはほとんどの場合、このオプションが最も安全だからです。 その例では、このオプションにより、地域が従業員テーブルのレコードで使用されている場合は、その値を地域テーブルから削除できないことがわかります。 そのため、従業員レコードで "西" などの地域が使用されていると、地域テーブルから "西" を削除しようとしても削除できません。 この場合、地域テーブルから "西" を削除するには、その値を使用しているすべての従業員レコードを他の値に再設定する必要があります。 この例では最後のオプションが有効です。最後のオプションを使用すると、地域テーブルから "西" を削除できます。 "西" に設定された従業員レコードから地域の値が自動的に削除され、値は空白のままになります。 2 番目のオプションを選択すると、"西" に設定された地域のあるすべての従業員レコードが、従業員テーブルから削除されます。 これは連鎖削除と呼ばれ、この例では削除する必要のあるデータ以外のデータも削除されます。 このオプションを選択する場合は注意が必要です。

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

Access Web App ではリレーションシップ ウィンドウを使用できません。 1 つのテーブルのフィールドを別のテーブルの関連するフィールドの値のソース (ルックアップ フィールド) として使用します。

  1. [テーブルの編集] をクリックして、変更するルックアップが含まれているテーブルを開きます。

    テーブルの編集

  2. 他方のテーブルから値を取得するフィールドを選びます。

  3. [デザイン] タブで、[テーブル ツール] の [ルックアップの変更] をクリックします。

  4. ウィザードの手順に従って、必要な変更を行います。 次の項目を変更できます。

    • 値のソースになっているフィールド

    • 値の並べ替え順序

    • フィールドの幅、キー列を非表示にするかどうか

    • ルックアップ フィールドのラベル

    • データ整合性を有効にするかどうか

    • データ整合性を有効にした場合、削除を連鎖するかまたは制限するか

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

[リレーションシップ] ウィンドウは、Access Web アプリでは使用できません。 あるテーブルのフィールドを、他のテーブルの関連フィールドの値のソース (ルックアップ フィールド) として使っているとします。 Access Web App でテーブルとテーブルのリレーションシップを削除するには、ルックアップ フィールドと、その関連データを削除する必要があります。

  1. [テーブルの編集] をクリックして、削除するルックアップ フィールドが含まれているテーブルを開きます。

    テーブルの編集

  2. Access Web App の他のテーブルに値が関連付けられているフィールド (ルックアップ フィールド) を選びます。

  3. [デザイン] タブで、[テーブル ツール] の [フィールドの削除] をクリックします。

  4. "指定したフィールドを削除すると、このフィールドのデータは失われます。よろしいですか?" というメッセージが表示されます。 [はい] をクリックして、ルックアップ フィールドと関連データの削除を行います。

    注: ルックアップ フィールドを削除するときに、インデックスの削除を確認するメッセージが表示される場合があります。 この確認メッセージが表示されたら、[はい] をクリックします。

  5. [保存] をクリックして、テーブル構造の変更を保存します。

ページの先頭へ

Access 2010 Web データベースのリレーションシップを作成または変更する

Access 2010 Web データベースでリレーションシップを作成するには、ルックアップ ウィザードを使用してください。 リレーションシップ ウィンドウは、Web データベースでは使用できません。 1 つのテーブルのフィールドを別のテーブルの関連するフィールドの値のソースとして使用します。

注:  値のソースとして使用するフィールドは、ルックアップ ウィザードを使用する前に既に存在する必要があります。

ルックアップ ウィザードを使用して Access 2010 Web データベースでリレーションシップを作成する

  1. 他方のテーブルから値を取得するテーブルを開きます。

  2. 最後のフィールドの右で、[クリックして追加] をクリックし、[ルックアップ/リレーションシップ] をクリックします。

    注:  [クリックして追加] を表示するために横方向にスクロールする必要がある場合もあります。

  3. ルックアップ ウィザードの最初の画面で、[テーブルまたはクエリの値をルックアップ列に表示する] を選択し、[次へ] をクリックします。

  4. ソース値を含むテーブルを選択し、[次へ] をクリックします。

  5. [選択可能なフィールド] ボックスで、ソース値を含むフィールドをダブルクリックし、[次へ] をクリックします。

  6. 必要に応じて、ルックアップ フィールドに並べ替え順序を指定します。 [次へ] をクリックします。

  7. 必要に応じて、ルックアップ フィールドの幅を調整します。値が長い場合にお勧めします。 [次へ] をクリックします。

  8. 新しいフィールドの名前を入力します。 2 つのテーブルの値を常に一致させる場合は、[データ整合性を有効にする] チェック ボックスをオンにし、次のいずれかをクリックします。

    • 連鎖削除 – このオプションでは、一方のテーブルからレコードを削除すると、他方のテーブルの対応するレコードも削除されます。

    • 削除制限 – このオプションでは、一方のテーブルの対応するレコードがある場合に他方のテーブルからレコードを削除しようとしても、削除操作は許可されません。

      注:  ルックアップ ウィザードを使用してリレーションシップを作成している場合は、ウィザードで [複数の値を許可する] をオンにしないでください。

Access 2010 Web データベースのリレーションシップを変更する

  1. 他方のテーブルから値を取得するテーブルを開きます。

  2. 他方のテーブルから値を取得するフィールドを選びます。

  3. [フィールド] タブの [プロパティ] で、[ルックアップの変更] をクリックします。

  4. ウィザードの手順に従って、必要な変更を行います。 次の項目を変更できます。

    • 値のソースになっているフィールド

    • 値の並べ替え順序

    • フィールドの幅、キー列を非表示にするかどうか

    • ルックアップ フィールドのラベル

    • データ整合性を有効にするかどうか

    • データ整合性を有効にした場合、削除を連鎖するかまたは制限するか

ページの先頭へ

関連項目

テーブルにルックアップ フィールドを追加する

リレーションシップ ウィンドウとは

Access で 2 つのテーブルを比較して一致するデータのみを検索する

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

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

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

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

×