MS Accessでリレーションを設定する方法と基本概念を徹底解説

Microsoft Accessは、データベースを簡単に扱える便利なツールですが、その中でも「リレーション(関係)」の設定は非常に重要な要素です。リレーションを理解することで、複数のテーブル間でデータを正確に関連付け、効率的なデータ管理ができるようになります。この記事では、MS Accessのリレーションの基礎から設定手順、そして活用のコツまでを初心者にもわかりやすく解説します。


リレーションとは?基本の考え方を理解しよう

Accessの「リレーション」とは、複数のテーブル間の「つながり」を定義する仕組みです。たとえば「顧客テーブル」と「注文テーブル」がある場合、顧客が誰なのかを関連付ける必要があります。この「顧客ID」のような共通項目を通じてデータを結びつけるのがリレーションです。
リレーションを設定することで、次のようなメリットがあります。

  • 重複データを減らせる(顧客名を何度も入力しなくて済む)
  • データの整合性を保てる(削除や更新の際に関連データを自動処理できる)
  • クエリで複数テーブルをまとめて検索できる

リレーションを使うと、Accessはまるでひとつの大きなデータベースのように機能します。


リレーションの3つの種類

Accessのリレーションには、主に次の3種類があります。

1対1のリレーション

1つのレコードが、他のテーブルの1つのレコードとだけ対応する関係です。
例:社員テーブルと社員詳細テーブル(社員IDが1対1で対応)。

1対多のリレーション

もっとも一般的な関係です。1つのレコードが、別のテーブルで複数のレコードと関連するもの。
例:顧客1人が複数の注文を持つ「顧客テーブル」と「注文テーブル」。

多対多のリレーション

複数のレコードが、お互いに複数のレコードと関係する場合。
例:学生と授業。1人の学生が複数の授業を受け、1つの授業に複数の学生が参加する。
この場合は中間テーブル(例:履修テーブル)を作って対応します。


リレーションを設定する前に準備しておくこと

Accessでリレーションを設定するためには、テーブルの構造をしっかり考えておくことが重要です。

  1. 主キー(Primary Key)を設定する
     各テーブルには一意の値を持つ主キーを設定します。
     例:顧客テーブル → 顧客ID、注文テーブル → 注文ID
  2. 外部キー(Foreign Key)を設定する
     他のテーブルと関係づけるためのキーです。
     例:注文テーブルに「顧客ID」を外部キーとして設定する。
  3. データ型を一致させる
     リレーションを結ぶ項目のデータ型が異なると、関係を設定できません。
     両方のキーが「数値型」や「テキスト型」など同じ型であることを確認します。

MS Accessでリレーションを設定する手順

Accessでリレーションを作成する手順は次の通りです。

  1. ナビゲーションウィンドウで「データベースツール」タブを開く
     上部メニューの「データベースツール」→「リレーションシップ」をクリックします。
  2. テーブルを追加する
     表示されたウィンドウで「表示」→「テーブルの表示」を選択し、関連付けたいテーブルを追加します。
  3. リレーションをドラッグで作成する
     たとえば「顧客テーブル」の「顧客ID」を「注文テーブル」の「顧客ID」にドラッグします。
  4. リレーションシップの編集ウィンドウで設定
     「リレーションシップの編集」ダイアログが表示されたら、
     「参照整合性を設定する」にチェックを入れましょう。
     さらに、「関連フィールドの更新」「関連レコードの削除」なども必要に応じて設定できます。
  5. 設定を保存する
     設定が終わったらリレーションウィンドウを閉じ、変更を保存します。

「参照整合性」とは何か?

リレーションを設定する際に重要なのが「参照整合性」です。
これは、テーブル間のデータの整合性(矛盾がない状態)を保つための仕組みです。

参照整合性を設定する効果

  • 存在しない顧客IDを注文テーブルに登録できなくなる
  • 顧客データを削除すると、関連する注文データも自動的に削除できる(設定による)
  • 間違ったデータの入力を防げる

つまり、「親テーブル」と「子テーブル」のつながりを常に正しく保つための機能です。


クエリでリレーションを活用する方法

リレーションを設定した後は、クエリでその効果を実感できます。

たとえば「顧客テーブル」と「注文テーブル」を結びつけて、
「顧客ごとの注文履歴」を一覧表示するクエリを作成できます。

手順

  1. クエリデザイン画面を開く
  2. 顧客テーブルと注文テーブルを追加
  3. 自動的にリレーション線(顧客ID)が表示される
  4. 表示したいフィールド(顧客名、注文日、金額など)を選択
  5. 実行ボタンをクリック

Accessはリレーションに基づいてデータを結合してくれるため、SQLを手打ちする必要はありません。


リレーションを使ったフォーム作成

リレーションを使うことで、親子フォーム(メインフォームとサブフォーム)を簡単に作成できます。
例として、「顧客ごとの注文履歴フォーム」を作る場合:

  1. 「フォームウィザード」を使う
  2. 顧客テーブルをメイン、注文テーブルをサブとして選択
  3. 「リレーション(顧客ID)」を基準に自動で連動
  4. フォームを保存し、顧客を選ぶとその顧客の注文履歴が表示される

このように、リレーションを活用すればユーザーにとって使いやすいデータ入力フォームを作成できます。


トラブルシューティング:リレーションがうまくいかないとき

リレーション設定時に「結合できません」などのエラーが出る場合、以下をチェックしてみてください。

  • 主キー・外部キーのデータ型が一致していない
  • 重複データがすでに存在している
  • 主キーが設定されていない
  • 参照整合性が有効にならない場合は、親テーブル側に該当レコードが存在しない

Accessの「リレーションシップビュー」で関係線を確認し、不要な関係は右クリックで削除することもできます。


実践例:顧客と注文テーブルのリレーション設定

最後に、実際の例を見てみましょう。

顧客テーブル

顧客ID氏名電話番号
1田中一郎090-xxxx-xxxx
2鈴木花子080-xxxx-xxxx

注文テーブル

注文ID顧客ID注文日金額
100112025/10/185,000
100222025/10/193,000

この2つのテーブルを「顧客ID」で結ぶことで、クエリで「田中一郎さんの注文一覧」などが簡単に取得できます。


まとめ

Accessのリレーションは、データベース設計の中核を担う重要な機能です。
主キー・外部キーを設定し、参照整合性を保つことで、データの一貫性を維持しながら効率的に運用できます。
リレーションを理解すれば、Accessを単なる表管理ソフトではなく、本格的なデータベースツールとして活用できるようになります。
まずは「1対多」関係を設定し、クエリやフォームでその効果を体感してみましょう。

タイトルとURLをコピーしました