Access でテーブルの主キーを追加または変更する
Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

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

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

この記事の内容

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

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

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

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

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

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

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

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

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

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

Access で主キーを変更する

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

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

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

追加情報

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

ページの先頭へ

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。