Microsoft Accessは、データベースを簡単に扱える便利なツールですが、その中でも「リレーション(関係)」の設定は非常に重要な要素です。リレーションを理解することで、複数のテーブル間でデータを正確に関連付け、効率的なデータ管理ができるようになります。この記事では、MS Accessのリレーションの基礎から設定手順、そして活用のコツまでを初心者にもわかりやすく解説します。
Accessの「リレーション」とは、複数のテーブル間の「つながり」を定義する仕組みです。たとえば「顧客テーブル」と「注文テーブル」がある場合、顧客が誰なのかを関連付ける必要があります。この「顧客ID」のような共通項目を通じてデータを結びつけるのがリレーションです。
リレーションを設定することで、次のようなメリットがあります。
リレーションを使うと、Accessはまるでひとつの大きなデータベースのように機能します。
Accessのリレーションには、主に次の3種類があります。
1つのレコードが、他のテーブルの1つのレコードとだけ対応する関係です。
例:社員テーブルと社員詳細テーブル(社員IDが1対1で対応)。
もっとも一般的な関係です。1つのレコードが、別のテーブルで複数のレコードと関連するもの。
例:顧客1人が複数の注文を持つ「顧客テーブル」と「注文テーブル」。
複数のレコードが、お互いに複数のレコードと関係する場合。
例:学生と授業。1人の学生が複数の授業を受け、1つの授業に複数の学生が参加する。
この場合は中間テーブル(例:履修テーブル)を作って対応します。
Accessでリレーションを設定するためには、テーブルの構造をしっかり考えておくことが重要です。
Accessでリレーションを作成する手順は次の通りです。
リレーションを設定する際に重要なのが「参照整合性」です。
これは、テーブル間のデータの整合性(矛盾がない状態)を保つための仕組みです。
つまり、「親テーブル」と「子テーブル」のつながりを常に正しく保つための機能です。
リレーションを設定した後は、クエリでその効果を実感できます。
たとえば「顧客テーブル」と「注文テーブル」を結びつけて、
「顧客ごとの注文履歴」を一覧表示するクエリを作成できます。
Accessはリレーションに基づいてデータを結合してくれるため、SQLを手打ちする必要はありません。
リレーションを使うことで、親子フォーム(メインフォームとサブフォーム)を簡単に作成できます。
例として、「顧客ごとの注文履歴フォーム」を作る場合:
このように、リレーションを活用すればユーザーにとって使いやすいデータ入力フォームを作成できます。
リレーション設定時に「結合できません」などのエラーが出る場合、以下をチェックしてみてください。
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対多」関係を設定し、クエリやフォームでその効果を体感してみましょう。