Microsoft Accessは、データベースを簡単に扱える便利なツールですが、その中でも「リレーション(関係)」の設定は非常に重要な要素です。リレーションを理解することで、複数のテーブル間でデータを正確に関連付け、効率的なデータ管理ができるようになります。この記事では、MS Accessのリレーションの基礎から設定手順、そして活用のコツまでを初心者にもわかりやすく解説します。
リレーションとは?基本の考え方を理解しよう
Accessの「リレーション」とは、複数のテーブル間の「つながり」を定義する仕組みです。たとえば「顧客テーブル」と「注文テーブル」がある場合、顧客が誰なのかを関連付ける必要があります。この「顧客ID」のような共通項目を通じてデータを結びつけるのがリレーションです。
リレーションを設定することで、次のようなメリットがあります。
- 重複データを減らせる(顧客名を何度も入力しなくて済む)
- データの整合性を保てる(削除や更新の際に関連データを自動処理できる)
- クエリで複数テーブルをまとめて検索できる
リレーションを使うと、Accessはまるでひとつの大きなデータベースのように機能します。
リレーションの3つの種類
Accessのリレーションには、主に次の3種類があります。
1対1のリレーション
1つのレコードが、他のテーブルの1つのレコードとだけ対応する関係です。
例:社員テーブルと社員詳細テーブル(社員IDが1対1で対応)。
1対多のリレーション
もっとも一般的な関係です。1つのレコードが、別のテーブルで複数のレコードと関連するもの。
例:顧客1人が複数の注文を持つ「顧客テーブル」と「注文テーブル」。
多対多のリレーション
複数のレコードが、お互いに複数のレコードと関係する場合。
例:学生と授業。1人の学生が複数の授業を受け、1つの授業に複数の学生が参加する。
この場合は中間テーブル(例:履修テーブル)を作って対応します。
リレーションを設定する前に準備しておくこと
Accessでリレーションを設定するためには、テーブルの構造をしっかり考えておくことが重要です。
- 主キー(Primary Key)を設定する
各テーブルには一意の値を持つ主キーを設定します。
例:顧客テーブル → 顧客ID、注文テーブル → 注文ID - 外部キー(Foreign Key)を設定する
他のテーブルと関係づけるためのキーです。
例:注文テーブルに「顧客ID」を外部キーとして設定する。 - データ型を一致させる
リレーションを結ぶ項目のデータ型が異なると、関係を設定できません。
両方のキーが「数値型」や「テキスト型」など同じ型であることを確認します。
MS Accessでリレーションを設定する手順
Accessでリレーションを作成する手順は次の通りです。
- ナビゲーションウィンドウで「データベースツール」タブを開く
上部メニューの「データベースツール」→「リレーションシップ」をクリックします。 - テーブルを追加する
表示されたウィンドウで「表示」→「テーブルの表示」を選択し、関連付けたいテーブルを追加します。 - リレーションをドラッグで作成する
たとえば「顧客テーブル」の「顧客ID」を「注文テーブル」の「顧客ID」にドラッグします。 - リレーションシップの編集ウィンドウで設定
「リレーションシップの編集」ダイアログが表示されたら、
「参照整合性を設定する」にチェックを入れましょう。
さらに、「関連フィールドの更新」「関連レコードの削除」なども必要に応じて設定できます。 - 設定を保存する
設定が終わったらリレーションウィンドウを閉じ、変更を保存します。
「参照整合性」とは何か?
リレーションを設定する際に重要なのが「参照整合性」です。
これは、テーブル間のデータの整合性(矛盾がない状態)を保つための仕組みです。
参照整合性を設定する効果
- 存在しない顧客IDを注文テーブルに登録できなくなる
- 顧客データを削除すると、関連する注文データも自動的に削除できる(設定による)
- 間違ったデータの入力を防げる
つまり、「親テーブル」と「子テーブル」のつながりを常に正しく保つための機能です。
クエリでリレーションを活用する方法
リレーションを設定した後は、クエリでその効果を実感できます。
たとえば「顧客テーブル」と「注文テーブル」を結びつけて、
「顧客ごとの注文履歴」を一覧表示するクエリを作成できます。
手順
- クエリデザイン画面を開く
- 顧客テーブルと注文テーブルを追加
- 自動的にリレーション線(顧客ID)が表示される
- 表示したいフィールド(顧客名、注文日、金額など)を選択
- 実行ボタンをクリック
Accessはリレーションに基づいてデータを結合してくれるため、SQLを手打ちする必要はありません。
リレーションを使ったフォーム作成
リレーションを使うことで、親子フォーム(メインフォームとサブフォーム)を簡単に作成できます。
例として、「顧客ごとの注文履歴フォーム」を作る場合:
- 「フォームウィザード」を使う
- 顧客テーブルをメイン、注文テーブルをサブとして選択
- 「リレーション(顧客ID)」を基準に自動で連動
- フォームを保存し、顧客を選ぶとその顧客の注文履歴が表示される
このように、リレーションを活用すればユーザーにとって使いやすいデータ入力フォームを作成できます。
トラブルシューティング:リレーションがうまくいかないとき
リレーション設定時に「結合できません」などのエラーが出る場合、以下をチェックしてみてください。
- 主キー・外部キーのデータ型が一致していない
- 重複データがすでに存在している
- 主キーが設定されていない
- 参照整合性が有効にならない場合は、親テーブル側に該当レコードが存在しない
Accessの「リレーションシップビュー」で関係線を確認し、不要な関係は右クリックで削除することもできます。
実践例:顧客と注文テーブルのリレーション設定
最後に、実際の例を見てみましょう。
顧客テーブル
顧客ID | 氏名 | 電話番号 |
---|---|---|
1 | 田中一郎 | 090-xxxx-xxxx |
2 | 鈴木花子 | 080-xxxx-xxxx |
注文テーブル
注文ID | 顧客ID | 注文日 | 金額 |
---|---|---|---|
1001 | 1 | 2025/10/18 | 5,000 |
1002 | 2 | 2025/10/19 | 3,000 |
この2つのテーブルを「顧客ID」で結ぶことで、クエリで「田中一郎さんの注文一覧」などが簡単に取得できます。
まとめ
Accessのリレーションは、データベース設計の中核を担う重要な機能です。
主キー・外部キーを設定し、参照整合性を保つことで、データの一貫性を維持しながら効率的に運用できます。
リレーションを理解すれば、Accessを単なる表管理ソフトではなく、本格的なデータベースツールとして活用できるようになります。
まずは「1対多」関係を設定し、クエリやフォームでその効果を体感してみましょう。