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

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

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

注: この記事は、 Access デスクトップ データベースでのみ使用することを目的としています。 Access は、 Access Web アプリと Web データベース内の新しいテーブルの主キーを自動的に管理します。 これらの自動主キーをオーバーライドすることはできますが、これを行うことをお勧めしません。

この記事の内容

Accessの主キーの概要

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

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

1. 主キー

2. 外部キー

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

Access は、主キーのインデックスを自動的に作成し、クエリやその他の操作を高速化するのに役立ちます。 Access は、すべてのレコードが主キー フィールドに値を持ち、常に一意であることを保証します。

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

主キーに適した特性

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

  • 各行を一意に識別する

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

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

適切なキーを特定できない場合は、キーとして使用する AutoNumber フィールドを作成します。 オートナンバー型フィールドでは、各レコードが初めて保存されたときに値が自動的に生成されます。 このため、オートナンバー型フィールドは、適切な主キーの 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 つまたは複数のフィールドから削除されます。

注: 主キーを設定せずに新しいテーブルを保存すると、 Access に作成するように求められます。 [はい] を選択 Access 、AutoNumber データ型を使用してレコードごとに一意の値を指定する ID フィールドを作成します。 テーブルに AutoNumber フィールドが既に含まれている場合、 Access はそのフィールドを主キーとして使用します。

Accessで主キーを変更する

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

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

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

追加情報

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

ページの先頭へ

ヘルプを表示

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

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