Access でテーブルの主キーを追加または変更する

Access でテーブルの主キーを追加または変更する

主キーは、テーブル全体で一意の値を持つ 1 つのフィールドまたは一連のフィールドです。各レコードはキーの値が異なるため、キーの値を使用してレコード全体を参照することができます。各テーブルの主キーは 1 つのみです。Access でテーブルの作成時に自動的に主キー フィールドを作成するか、主キーとして使用するフィールドを手動で指定することができます。この記事では、主キーを使用する方法とその理由について説明します。

テーブルの主キーを設定するには、デザイン ビューでテーブルを開きます。使用するフィールド (複数のフィールド) を選択して、リボンの [主キー] をクリックします。

注: この記事の内容は、Access デスクトップ データベースでの使用のみを対象としています。Access Web アプリおよび Web データベースの新しいテーブルの主キーは自動的に管理されます。自動主キーは無効にできますが、お勧めしません。

この記事の内容

Access の主キーの概要

Access で既にあるフィールドを使用して主キーを設定する

主キーを削除する

Access で主キーを変更する

追加情報

Access の主キーの概要

Access では主キー フィールドを使用して、簡単に複数のテーブルのデータを関連付け、わかりやすい方法で結合できます。他のテーブルの主キー フィールドをインクルードすると、その主キーの元になったテーブルを参照することができます。これらの他のテーブルで、このフィールドは外部キーと呼ばれます。たとえば、"得意先" テーブルの "得意先コード" フィールドは、"受注" テーブルにも表示されることがあります。"得意先" テーブルで "得意先コード" フィールドは主キーです。"受注" テーブルで "得意先コード" フィールドは、外部キーと呼ばれます。簡単に言うと、外部キーは他のテーブルの主キーです。詳細については、「データベース設計の基本」をご覧ください。

2 つの Access データシートの間に表示される主キーと外部キー

1. 主キー

2. 外部キー

既存のデータをデータベースに移動する場合、主キーとして使用できるフィールドが既に存在することがあります。多くの場合、コード番号、通し番号やコードなどの、固有の識別番号はテーブルの主キーとなっています。たとえば、"得意先" テーブルでは、得意先ごとに一意な得意先 ID 番号が割り当てられます。この場合、"得意先 ID" フィールドが主キーです。

Access により、主キーのインデックスが自動的に作成され、これにより、クエリや他の操作が高速化されます。また、各レコードの主キー フィールドには値が設定されており、それらの値は常に一意です。

データシート ビューで新しいテーブルを作成すると、Access によって自動的に主キーが作成され、"ID" のフィールド名とオートナンバー型が割り当てられます。

主キーに適した特性

主キーに適したフィールドには、いくつかの特性があります。

  • 各行を一意に識別する

  • 必ず値を持ち、空または Null でない

  • 保存する値がめったに (理想的にはまったく) 変更されない

お勧めのキーを識別できない場合は、オートナンバー型フィールドを作成して、キーとして使用します。オートナンバー型フィールドでは、各レコードが初めて保存されたときに値が自動的に生成されます。このため、オートナンバー型フィールドは、適切な主キーの 3 つ特性をすべて満たしています。オートナンバー型フィールドを追加する方法の詳細については、「オートナンバー型フィールドを主キーとして追加する」をご覧ください。

Access テーブル デザイン ビューでラベルが ID であるオートナンバー型主キー

オートナンバー型のフィールドにより適切な主キーが作成されます。

主キーに適さないフィールドの例

主キーに適した特性の 1 つ以上に該当しないフィールドは、主キーとして使用するのに適していません。ここでは、"連絡先" テーブルの主キーに適さないフィールドの例を、主キーに適さない理由と共に示します。

不適切な主キー

理由

氏名

一意でない可能性があり、変更されることもあります。

電話番号

変更される可能性があります。

電子メール アドレス

変更される可能性があります。

郵便番号

複数のユーザーで同じ郵便番号の場合があります。

具体名と番号の組み合わせ

具体名の部分が変更され、保守に負担がかかる場合があります。具体名の部分が別のフィールドとして繰り返し使用されると、混乱の原因になるおそれがあります。たとえば、市区町村を結合して 1 ずつ増加する番号 (例: 東京0579) は、都市名がフィールドとして保存されていても、主キーに適していません。

社会保障番号

  • 個人情報であり、政府機関や一部の組織で許可されていません。

  • SSN を保有していない人もいます。

  • 一生のうちに複数の SSN を保有する場合もあります。

複合キー: 複数のフィールドを組み合わせて主キーとして使用

テーブルの 2 つ以上のフィールドを主キーとして使用する場合もあります。たとえば、注文の一覧を保存している "受注明細" テーブルでは、"受注 ID" フィールドと "商品 ID" フィールドの 2 つのフィールドを主キーとして使用する場合があります。複数のフィールドを含むキーは複合キーと呼ばれます。

Access で既にあるフィールドを使用して主キーを設定する

主キーが正常に機能するには、主キーに設定されたフィールドによって各行が一意に識別されること、空または Null 値のフィールドがないこと、フィールドがほとんど (理想的にはまったく) 変更されないことが必要です。主キーを設定するには、次の操作を行います。

  1. 変更するデータベースを開きます。

  2. ナビゲーション ウィンドウで、主キーを設定するテーブルを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

    ヒント: ナビゲーション ウィンドウが表示されない場合は、F11 キーを押すと表示されます。

  3. 主キーとして使用するフィールド (1 つまたは複数) を選択します。

    単一のフィールドを選択するには、目的のフィールドの行セレクターをクリックします。

    複数のフィールドを選択して複合キーを作成するには、Ctrl キーを押しながら各フィールドの行セレクターをクリックします。

  4. [デザイン] タブで、[ツール] グループの [主キーの設定] をクリックします。

    [デザイン] タブの [ツール]

    キー インジケーターは、主キーに指定した 1 つまたは複数のフィールドの左側に追加されます。

Access で主キーを削除する

主キーを削除すると、主キーに設定されていたフィールドはレコードを識別するための主な手段ではなくなります。

主キーを削除してもフィールドはテーブルから削除されませんが、主キーに対して作成されたインデックスが削除されます。

  1. 主キーを削除する前に、テーブル リレーションシップが主キーに設定されていないことを確認する必要があります。1 つ以上のテーブル リレーションシップの一部として設定されている主キーを削除しようとすると、Access では、そのリレーションシップを最初に削除する必要があることを示す警告メッセージが表示されます。

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

    1. テーブル リレーションシップが設定されているテーブルが開いている場合は、閉じます。開いているテーブル間に設定されているテーブル リレーションシップは、削除することができません。

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

      Access のリボンの画像

    3. テーブル リレーションシップが設定されているテーブルが表示されていない場合、[デザイン] タブの [リレーションシップ] グループで、[テーブルの表示] をクリックします。

    4. [テーブルの表示] ダイアログ ボックスで追加するテーブルを選択し、[追加] をクリックし、[閉じる] をクリックします。

      リボンの [デザイン] タブの [リレーションシップ] グループ

    5. 削除するテーブル リレーションシップをクリックして選択します (選択したリレーションシップは太字で表示されます)。次に、Del キーを押します。

    6. [デザイン] タブの [リレーションシップ] グループで [閉じる] をクリックします。

  2. リレーションシップを削除した後に、ナビゲーション ウィンドウで、主キーを削除するテーブルを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。

    ヒント: ナビゲーション ウィンドウが表示されない場合は、F11 キーを押すと表示されます。

  3. 現在の主キーの行セレクターをクリックします。

    主キーが単一のフィールドで構成される場合は、そのフィールドの行セレクターをクリックします。

    主キーが複数のフィールドで構成される場合は、主キーのいずれかのフィールドの行セレクターをクリックします。

  4. [デザイン] タブで、[ツール] グループの [主キーの設定] をクリックします。

    キー インジケーターが、主キーに指定されていた 1 つまたは複数のフィールドから削除されます。

注: 主キーを設定せずに新しいテーブルを保存すると、主キーを作成するように求めるメッセージが表示されます。[はい] を選択した場合は、オートナンバー型を使用する ID フィールドが作成され、各レコードに一意の値が割り当てられます。テーブルにオートナンバー型フィールドが既に存在する場合は、そのフィールドが主キーとして使用されます。

Access で主キーを変更する

テーブルの主キーを変更する場合は、次の手順に従ってください。

  1. 主キーを削除する」の手順を使用して既存の主キーを削除します。

  2. 主キーを設定する」の手順を使用して主キーを設定します。

追加情報

データベース設計と適切な主キーの選択に関する詳細については、次の記事を参照してください。

ページの先頭へ

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

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

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

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

×