「Accessのテーブル設計が難しくて、どこから手をつけていいかわからない」「MOS Access試験でテーブル設計の問題が苦手」——そんな悩みを持つ方に向けて、Accessテーブル設計の基本から応用まで、試験対策にも実務にも使える知識を徹底的に解説します。
Accessのテーブルはデータベースの土台です。テーブル設計を正しく行わないと、データの重複・整合性の崩れ・検索速度の低下といった問題が起きます。本記事ではフィールド設定・データ型の選び方・主キーの考え方を中心に、MOS Access試験の出題範囲もカバーした完全ガイドをお届けします。
初心者の方でも「読み終えたらAccessのテーブルを自信を持って作れる」ようになることを目標に、丁寧に解説していきます。ぜひ最後までお読みください。
Accessテーブル設計とは何か?データベースの基礎から理解する
Accessは「リレーショナルデータベース管理システム(RDBMS)」のひとつです。Excelが表計算ソフトであるのに対し、Accessは大量のデータを構造的に管理・検索・集計するためのソフトです。テーブル設計とは、「どのデータをどんな形で保存するか」を事前に決める作業のことです。
テーブルとは何か
テーブルは表形式でデータを管理する入れ物です。Excelのシートに似ていますが、データベースのテーブルは以下の点で根本的に異なります。
- 各列(フィールド)に格納できるデータの種類(型)があらかじめ決まっている
- 行(レコード)を一意に識別する主キーを持つ
- 他のテーブルとリレーションシップ(関係)を設定できる
- データの整合性をルールで強制できる
- 数万件~数百万件のデータを高速に検索できる
Excelのセルには何でも自由に入力できますが、Accessのテーブルはルールに従ったデータだけを受け入れる設計になっています。この厳格さがデータの品質を守る鍵です。
フィールドとレコードの違い
テーブルの構成要素を理解しておきましょう。
| 用語 | 説明 | Excelでの対応 |
|---|---|---|
| フィールド | テーブルの列。データの属性(項目)を表す | 列(A列・B列…) |
| レコード | テーブルの行。1件分のデータを表す | 行(1行・2行…) |
| 値(セル) | フィールドとレコードの交差点に格納されるデータ | セル(A1・B2…) |
たとえば「顧客テーブル」であれば、「氏名」「電話番号」「住所」などがフィールド(列)、各顧客1人分のデータが1レコード(行)です。
テーブル設計の重要性
テーブル設計の良し悪しが、システム全体の品質を左右します。設計が悪いと以下の問題が起きます。
| 問題 | 原因 | 影響 |
|---|---|---|
| データ重複 | 同じ情報を複数の場所に保存 | 更新漏れ・矛盾が発生 |
| 更新異常 | 1件変更すると複数行に影響 | データ不整合 |
| 削除異常 | 1件削除で他の情報も消える | 必要データの消失 |
| 検索低速 | 適切なインデックスがない | クエリが遅くなる |
| 拡張困難 | データ構造が硬直化している | 将来の機能追加が困難 |
「正規化」というルールに従って設計することで、これらの問題を未然に防げます。正規化については後ほど詳しく説明します。
Accessテーブルの作り方:デザインビューの操作手順
Accessでテーブルを作成するには、「デザインビュー」を使う方法が最も基本的です。デザインビューでは各フィールドの名前・データ型・説明を細かく設定できます。MOS試験でも最頻出の操作画面です。
デザインビューでテーブルを作成する手順
- Accessを起動し、データベースを開く(または新規作成する)
- 「作成」タブをクリック
- 「テーブルデザイン」ボタンをクリック
- デザインビューが表示される
- 「フィールド名」列に列の名前を入力する
- 「データ型」列でドロップダウンからデータ型を選択する
- 「説明(オプション)」列に説明文を入力する(任意)
- 主キーとなるフィールドの行をクリックして選択し、「デザイン」タブ→「主キー」ボタンをクリック
- Ctrl+Sでテーブルを保存し、テーブル名を入力してOK
デザインビューの画面構成
デザインビューは上下2つのエリアに分かれています。
- 上部エリア:フィールド名・データ型・説明を入力するグリッド
- 下部エリア(フィールドプロパティ):選択したフィールドの詳細設定(フィールドサイズ・書式・入力規則など)
データシートビューとの違い
Accessにはデザインビューのほかに「データシートビュー」があります。
| ビュー | 用途 | 特徴 |
|---|---|---|
| デザインビュー | テーブル構造の設計 | フィールドのプロパティを詳細設定できる。MOS試験で最頻出 |
| データシートビュー | データの入力・閲覧 | Excelのような表形式で操作できる。日常的なデータ入力に使用 |
2つのビューはリボンの「表示」ボタン、またはステータスバー右下のアイコンで切り替えられます。MOS試験では指定されたビューで操作することが求められるため、切り替え操作は必ず覚えておきましょう。
テーブルウィザードを使う方法
「作成」タブの「テーブル」ボタンをクリックすると、データシートビューでの簡易テーブル作成が始まります。ただしフィールドのデータ型・プロパティを細かく設定するにはデザインビューが必須です。MOS試験対策では最初からデザインビューを使う習慣をつけましょう。
フィールド設計の基本:名前・データ型・プロパティの設定
テーブル設計の核心はフィールド(列)の設計です。フィールドごとに「フィールド名」「データ型」「フィールドプロパティ」を適切に設定することが重要です。
フィールド名のルール
フィールド名には以下のルールがあります。
- 最大64文字まで使用可能
- 先頭にスペースは使用不可
- ピリオド(.)・感嘆符(!)・角括弧([ ])・バックスラッシュ(\)は使用不可
- 同一テーブル内でフィールド名の重複は不可
- 日本語も使用できるが、VBAやSQLで扱うなら英数字推奨
実務ではわかりやすく、短い名前をつけることが大切です。たとえば「顧客ID」「顧客名」「電話番号」のように、フィールドの内容がひと目でわかる名前にします。英語名を使う場合は「CustomerID」「CustomerName」「PhoneNumber」のようにキャメルケースやアンダースコア区切りで書くのが一般的です。
フィールドプロパティの主な設定項目
フィールドプロパティは、フィールドの動作を細かくコントロールする設定です。デザインビューの下部エリアで設定できます。
| プロパティ | 説明 | 設定例 |
|---|---|---|
| フィールドサイズ | 格納できる最大文字数・数値の範囲 | テキスト型:50、数値型:長整数型 |
| 書式 | データの表示形式 | 日付/時刻型で「yyyy/mm/dd」 |
| 定型入力 | 入力フォーマットの指定 | 電話番号「000\-0000\-0000」 |
| 標題 | フォームやレポートでの表示名 | 「顧客ID」→「お客様番号」 |
| 既定値 | 新規レコード作成時の初期値 | Date()で今日の日付を自動入力 |
| 入力規則 | 入力できる値の条件 | Between 0 And 100(0以上100以下) |
| エラーメッセージ | 入力規則違反時のメッセージ | 「0~100の値を入力してください」 |
| 値要求 | 空白(Null)を許可するか | 「はい」にすると必須入力になる |
| 空文字列の許可 | 空の文字列(””)を許可するか | テキスト型で「いいえ」推奨 |
| インデックス | 検索・並び替えの高速化 | 「はい(重複なし)」で一意制約 |
| Unicode圧縮 | テキストデータの圧縮保存 | 日本語フィールドでは「はい」推奨 |
入力規則の設定例
入力規則は、フィールドに入力できる値を制限する強力な機能です。MOS試験でも設定方法が問われます。
| 入力規則の例 | 説明 |
|---|---|
| >0 | 0より大きい値のみ許可 |
| Between 1 And 12 | 1以上12以下の値のみ許可 |
| >=Date() | 今日以降の日付のみ許可 |
| "東京都" Or "神奈川県" Or "千葉県" | 特定の値のみ許可 |
| Like "?????" | ちょうど5文字のみ許可 |
| Is Not Null | Null値を禁止(値要求と同等) |
Accessのデータ型完全解説:用途別に正しく選ぶ
データ型はフィールドに格納できるデータの種類を決定します。適切なデータ型を選ぶことで、データの整合性を保ち、クエリのパフォーマンスを向上させることができます。MOS試験でも各データ型の特徴・用途は重要な出題範囲です。
主要なデータ型一覧
| データ型 | 格納できるデータ | 最大サイズ | 用途例 |
|---|---|---|---|
| 短いテキスト | テキスト・テキストと数値の組み合わせ | 255文字 | 氏名、住所、電話番号、郵便番号 |
| 長いテキスト(メモ) | 長文テキスト | 約1GB | 備考欄、説明文、自由記述 |
| 数値 | 数値データ(整数・小数) | フィールドサイズにより異なる | 数量、年齢、点数、外部キー |
| 日付/時刻 | 日付・時刻データ | 8バイト | 生年月日、登録日時、締め切り |
| 通貨 | 通貨値・財務データ | 8バイト | 価格、売上金額、給与 |
| オートナンバー | 自動連番または乱数 | 4バイト(長整数) | 主キー用ID(最も一般的) |
| Yes/No | 真(Yes)・偽(No)の2値 | 1ビット | フラグ、有効・無効、チェックボックス |
| OLEオブジェクト | 画像・Officeドキュメント等のオブジェクト | 約1GB | ほぼ非推奨(添付ファイル型を使用) |
| ハイパーリンク | URLや電子メールアドレス | 約1GB | Webサイトアドレス、メールアドレス |
| 添付ファイル | 画像・ファイルの添付(複数可) | 2GB | 証明書画像、添付書類 |
| 集計 | 他フィールドを使った計算結果 | — | 合計金額、年齢自動計算 |
| ルックアップウィザード | 他テーブルまたは固定値リストからの選択 | — | 都道府県リスト、担当者選択 |
数値型のフィールドサイズ詳細
数値型は「フィールドサイズ」プロパティで格納できる数値の範囲・精度が変わります。用途に合ったサイズを選ぶことが重要です。
| フィールドサイズ | 格納範囲 | バイト数 | 用途 |
|---|---|---|---|
| バイト型 | 0~255 | 1バイト | 小さな整数(評価点数、月数など) |
| 整数型 | -32,768~32,767 | 2バイト | 中程度の整数 |
| 長整数型 | -2,147,483,648~2,147,483,647 | 4バイト | IDフィールド(主キー・外部キー)に最適 |
| 単精度浮動小数点型 | 小数を含む数値(精度低め) | 4バイト | 概算計算 |
| 倍精度浮動小数点型 | 小数を含む数値(精度高め) | 8バイト | 科学計算、精度が必要な小数 |
| 十進型 | 高精度の小数(最大28桁) | 12バイト | 財務計算、高精度が必要な場合 |
主キーとして使うIDには長整数型が最も一般的です。オートナンバー型のデフォルトも長整数型です。外部キー(他テーブルの主キーを参照するフィールド)は、参照先と同じデータ型・フィールドサイズにする必要があります。
データ型選択で間違えやすいケース
- 郵便番号・電話番号は「数値型」ではなく「短いテキスト型」を使う(先頭ゼロ「06-xxxx」が消えるため)
- 金額は「通貨型」を使う(数値型より丸め誤差が少ない)
- 日付の計算(経過日数・年齢など)が必要なら必ず「日付/時刻型」を使う(テキスト型では計算不可)
- 100文字以内の文字列は「短いテキスト型」、それ以上は「長いテキスト型」(メモ型)
- チェックボックス的な2値は「Yes/No型」を使う(「0か1か」を数値で管理するより意味が明確)
- 画像を扱うなら「OLEオブジェクト」より「添付ファイル型」を使う(OLEはデータが膨大になる)
主キー(プライマリキー)の設定と役割
主キーはAccessテーブル設計の中心概念です。各レコードを一意に識別するフィールド(またはフィールドの組み合わせ)のことを主キーといいます。主キーがあることで、クエリの結合やフォームの更新が正確に行えます。
主キーの3つの条件
- 一意性:テーブル内で重複する値がない
- 非Null性:空白(Null)にならない
- 不変性:変更されない値であることが望ましい(厳密な要件ではないが設計上重要)
主キーの種類と比較
| 種類 | 説明 | メリット | デメリット | 適した場面 |
|---|---|---|---|---|
| オートナンバー主キー | Accessが自動採番するID | 設定が簡単・一意性保証・手動入力不要 | 意味を持たない番号(業務的に読みにくい) | ほとんどのテーブルで第1候補 |
| 自然キー(業務キー) | 社員番号・商品コードなど業務で使う番号 | 業務的に意味があり直感的 | 変更・重複のリスクがある | 変更されない業務IDがある場合 |
| 複合主キー | 複数フィールドを組み合わせた主キー | 業務ルールを構造で表現できる | 設定・管理・外部キー参照が複雑 | 中間テーブル(多対多の結合テーブル) |
初学者にはオートナンバー型の主キーが最もシンプルで扱いやすいです。MOS試験でもオートナンバーを使った主キー設定は頻出です。
主キーを設定する手順(デザインビュー)
- デザインビューでテーブルを開く
- 主キーにしたいフィールドの行をクリックして選択
- 「デザイン」タブの「主キー」ボタンをクリック(または行の先頭を右クリック→「主キー」)
- フィールド名の左にカギアイコン(🔑)が表示されれば設定完了
複合主キーの場合は、Ctrlキーを押しながら複数の行を選択した状態で「主キー」ボタンをクリックします。
外部キーとリレーションシップ
主キーと一緒に理解したいのが外部キー(リレーションシップ)です。外部キーとは、他のテーブルの主キーを参照するフィールドのことです。
たとえば「注文テーブル」に「顧客ID」フィールドを設ければ、「顧客テーブル」の主キーである「顧客ID」を参照できます。この関係を「リレーションシップ」といい、Accessで複数テーブルを連携させる基本的な仕組みです。外部キーのデータ型は、参照先テーブルの主キーと同じデータ型にする必要があります(例:参照先がオートナンバー/長整数型なら外部キーも数値型/長整数型)。
インデックスの設定:検索パフォーマンスを向上させる
インデックスは、特定のフィールドに対して検索・並び替えを高速化する仕組みです。本の索引と同じ役割を果たします。インデックスがなければ、Accessはテーブルの全レコードを上から順に検索します(フルスキャン)。インデックスがあれば、目当てのデータにすぐジャンプできます。
インデックスを設定すべきフィールド
- よく検索・フィルタリングに使うフィールド(氏名、メールアドレスなど)
- リレーションシップで参照される外部キー
- 並び替えに頻繁に使うフィールド(日付、コードなど)
- 一意性を保証したいフィールド(社員番号、メールアドレスなど)
インデックスの種類
| 設定値 | 説明 | 用途 |
|---|---|---|
| いいえ | インデックスなし(デフォルト) | 検索頻度が低いフィールド |
| はい(重複あり) | インデックスあり・同じ値を複数のレコードに許可 | 氏名・都道府県など重複する可能性がある |
| はい(重複なし) | インデックスあり・一意制約(同じ値の重複を禁止) | メールアドレス・社員番号など一意性が必要 |
主キーには自動的に「はい(重複なし)」のインデックスが設定されます。メールアドレスのように重複してはいけないフィールドには「はい(重複なし)」を設定すると、誤ったデータ入力を防げます。
複数フィールドインデックスの設定
複数のフィールドの組み合わせでインデックスを設定することも可能です。「デザイン」タブの「インデックス」ボタンを押すとインデックスウィンドウが開き、複合インデックスを設定できます。
インデックスの注意点
インデックスは検索を高速化しますが、データの追加・更新・削除は少し遅くなります。また、テーブルのファイルサイズも大きくなります。むやみに多くのフィールドにインデックスを設定するのは逆効果です。実際によく検索するフィールドに絞って設定しましょう。
データベース正規化:重複のない設計の考え方
正規化とは、データの重複を排除し、整合性を保つためのテーブル設計手法です。MOS試験では直接問われることは少ないですが、実務的なテーブル設計の基礎として理解しておくと設計の品質が格段に上がります。
第1正規形(1NF):繰り返しグループの排除
各フィールドには1つの値だけを入れるルールです。
NGの例:「注文商品」フィールドに「商品A,商品B,商品C」をカンマ区切りで詰め込む
OKの例:「注文明細テーブル」を別途作成して1行1商品にする
1NFに違反したデータは検索もソートも困難になります。必ず1フィールド1値のルールを守りましょう。
第2正規形(2NF):部分関数従属の排除
複合主キーを使うテーブルで特に重要なルールです。主キーの一部だけに依存するフィールドを別テーブルに分けます。
NGの例:複合主キー(注文ID+商品ID)のテーブルに「商品名」を持たせる(商品名は商品IDのみに依存)
OKの例:商品名は「商品テーブル」に移動し、商品IDで参照する
第3正規形(3NF):推移的関数従属の排除
主キー以外のフィールドに依存するフィールドを別テーブルに分けるルールです。
NGの例:「社員テーブル」に「部署名」と「部署所在地」が両方ある(部署所在地は部署名に依存する)
OKの例:「部署テーブル」を別途作成して部署名と部署所在地を管理し、社員テーブルには部署IDのみ持たせる
実務では第3正規形まで正規化することが一般的なゴールです。ただし、パフォーマンスのために意図的に一部を非正規化することもあります(上級テクニック)。
実践:顧客管理データベースのテーブル設計例
実際のテーブル設計をイメージするため、顧客管理データベースを例に設計してみましょう。顧客管理は最もよく使われるAccessの使用例のひとつです。
顧客テーブルの設計
| フィールド名 | データ型 | フィールドサイズ | 主キー | 値要求 | 備考 |
|---|---|---|---|---|---|
| 顧客ID | オートナンバー | 長整数型 | ◎ | — | 自動採番、主キー |
| 氏名 | 短いテキスト | 50 | — | はい | 必須入力 |
| ふりがな | 短いテキスト | 50 | — | いいえ | 任意入力 |
| 電話番号 | 短いテキスト | 20 | — | いいえ | 定型入力で書式設定 |
| メールアドレス | 短いテキスト | 100 | — | いいえ | インデックス(重複なし)推奨 |
| 郵便番号 | 短いテキスト | 8 | — | いいえ | 「000-0000」形式、テキスト型必須 |
| 都道府県 | 短いテキスト | 10 | — | いいえ | ルックアップで47都道府県から選択 |
| 住所 | 短いテキスト | 200 | — | いいえ | 市区町村以降 |
| 生年月日 | 日付/時刻 | — | — | いいえ | 書式:yyyy/mm/dd |
| 登録日 | 日付/時刻 | — | — | はい | 既定値にDate()を設定 |
| 会員フラグ | Yes/No | — | — | — | 会員:Yes、非会員:No |
| 備考 | 長いテキスト | — | — | いいえ | 自由記述欄 |
注文テーブルの設計
| フィールド名 | データ型 | 値要求 | 備考 |
|---|---|---|---|
| 注文ID | オートナンバー | — | 主キー |
| 顧客ID | 数値(長整数型) | はい | 外部キー(顧客テーブルを参照)、必須 |
| 注文日 | 日付/時刻 | はい | 既定値=Date() |
| 合計金額 | 通貨 | いいえ | 入力規則:>=0 |
| 状態 | 短いテキスト | はい | ルックアップ:受付中/処理中/完了/キャンセル |
| 備考 | 長いテキスト | いいえ | — |
「顧客ID」フィールドが両方のテーブルに存在し、これがリレーションシップの接続点になります。このように、参照元テーブルの主キーと同じデータ型・サイズで外部キーを設定することが重要です。
注文明細テーブルの設計(多対多の解消)
1つの注文に複数の商品が含まれる場合、「注文テーブル」と「商品テーブル」の間に「注文明細テーブル」を置いて多対多の関係を解消します。
| フィールド名 | データ型 | 備考 |
|---|---|---|
| 明細ID | オートナンバー | 主キー(または注文ID+商品IDの複合主キー) |
| 注文ID | 数値(長整数型) | 外部キー(注文テーブル参照) |
| 商品ID | 数値(長整数型) | 外部キー(商品テーブル参照) |
| 数量 | 数値(整数型) | 入力規則:>0 |
| 単価 | 通貨 | 注文時点の価格を記録 |
リレーションシップと参照整合性の設定
複数テーブルを連携させるのがAccessの真骨頂です。リレーションシップを設定することで、テーブル間のデータの整合性を自動で管理できます。
リレーションシップの種類
| 種類 | 説明 | 例 |
|---|---|---|
| 一対一(1:1) | 一方の1レコードに対し、もう一方の1レコードが対応 | 社員テーブル↔社員詳細テーブル |
| 一対多(1:N) | 一方の1レコードに対し、もう一方の複数レコードが対応(最も一般的) | 顧客テーブル↔注文テーブル |
| 多対多(N:M) | 両方のレコードが互いに複数対応(中間テーブルで解消) | 注文テーブル↔商品テーブル(注文明細テーブルを介して解消) |
リレーションシップの設定手順
- すべてのテーブルを閉じた状態で、「データベースツール」タブをクリック
- 「リレーションシップ」ボタンをクリック
- 「テーブルの表示」ダイアログで連携させるテーブルを追加してClose
- 一方のテーブルの主キー(例:顧客ID)をドラッグして、もう一方の外部キー(例:顧客ID)にドロップ
- 「リレーションシップ」ダイアログが表示される
- 「参照整合性」チェックボックスにチェックを入れる
- 必要に応じて「フィールドの連鎖更新」「レコードの連鎖削除」をチェック
- 「作成」をクリック
参照整合性の設定
参照整合性を有効にすると、以下のルールが自動で適用されます。
- 参照先のテーブルに存在しない値を外部キーに入力できない(例:存在しない顧客IDを注文テーブルに入力できない)
- 参照されているレコードを勝手に削除できない(例:注文が残っている顧客を顧客テーブルから削除できない)
- 参照されているレコードの主キーを変更できない
「連鎖更新」を有効にすると、親テーブルの主キーを変更したとき子テーブルの外部キーも自動更新されます。「連鎖削除」を有効にすると、親レコードを削除したとき関連する子レコードも自動削除されます(データ削除に注意が必要です)。
MOS Access試験でのテーブル設計問題攻略法
MOS Access試験(Microsoft Office Specialist Access)では、テーブル設計に関する問題が必ず出題されます。試験に合格するために、特に重点的に対策すべきポイントをまとめました。
MOS試験で頻出のテーブル設計タスク
- デザインビューでの新規テーブル作成
- フィールドのデータ型変更
- 主キーの設定・変更
- フィールドプロパティ(値要求・既定値・入力規則)の設定
- インデックスの設定(重複なし・重複あり)
- フィールドの追加・削除・移動(行の並び替え)
- リレーションシップの作成・参照整合性の設定
- ルックアップウィザードの設定
- テーブルの保存・名前変更
MOS試験対策チェックリスト
- □ デザインビューとデータシートビューの切り替えができる
- □ 各データ型の用途を説明できる(特に短いテキスト/数値/日付/Yes-Noの区別)
- □ オートナンバー型で主キーを設定できる
- □ 既存の主キーを変更・削除できる
- □ フィールドプロパティ(値要求・入力規則・既定値・書式)を設定できる
- □ インデックスの「重複なし」を設定できる
- □ リレーションシップウィンドウでテーブルを結合できる
- □ 参照整合性を設定できる
- □ フィールドの行を上下に移動できる
- □ ルックアップウィザードで選択肢を設定できる
MOS試験でよく間違えるポイント
| 間違いやすいポイント | 正しい知識 |
|---|---|
| 電話番号を数値型にする | 短いテキスト型が正解(先頭ゼロが消えるため) |
| 主キーにNull値を許可する | 主キーはNull不可(Accessが自動で設定) |
| オートナンバーの値を手動で変更しようとする | オートナンバーは手動入力不可。変更も不可 |
| リレーションシップで参照整合性を設定し忘れる | 参照整合性を設定するとデータの一貫性が守られる(試験では指定があれば必ず設定) |
| テキスト型で計算式を使おうとする | 計算には数値型・通貨型・日付/時刻型が必要 |
| フィールドサイズを変更し忘れる | テキスト型はデフォルト255文字。短い値なら小さく設定するとよい |
| インデックスウィンドウと「インデックス」プロパティを混同する | フィールドプロパティの「インデックス」が基本。インデックスウィンドウは複合インデックス用 |
試験前の実践練習方法
MOS試験はスピードと正確さが求められます。以下の手順で繰り返し練習することをおすすめします。
- サンプルのテーブル設計仕様(フィールド名・データ型・プロパティのリスト)を作成する
- Accessで新規データベースを作成し、デザインビューでテーブルを作成する
- 全フィールドのプロパティを設定する
- 主キーを設定して保存する
- リレーションシップを設定する
- データシートビューに切り替えてサンプルデータを数件入力してみる
- 入力規則をテストする(違反データを入力してエラーが出るか確認)
よくある失敗と対処法
Accessのテーブル設計で初心者がよくつまずくポイントと、その対処法をまとめました。事前に知っておくことで、同じ失敗を避けられます。
| 失敗パターン | 原因 | 対処法 |
|---|---|---|
| データ型変更後にエラーが出る | 既存データが新しい型に変換できない | バックアップ後に変換、または新フィールドを追加してデータ移行 |
| 主キーの重複エラー | 手動入力で同じIDを入力した | オートナンバー型を使う、またはインデックス「重複なし」を設定 |
| リレーションシップ設定でエラー | 関連フィールドのデータ型が不一致 | 両テーブルの対応フィールドを同じデータ型・サイズにする |
| 削除しようとしてエラー(参照整合性違反) | 参照整合性により参照先レコードが削除できない | 先に子テーブルのレコードを削除する(または連鎖削除を使う) |
| フィールドサイズを小さくしたらデータが切れた | 既存データが新サイズを超えている | 変更前にデータサイズを確認する。バックアップ必須 |
| テーブルが開けなくなった | 設計変更で整合性が壊れた | データベースを修復(「データベースツール」→「データベースの修復と最適化」) |
| リレーションシップを設定できない | 対象テーブルが開いている | 全テーブルを閉じてからリレーションシップウィンドウを開く |
FAQ:Accessテーブル設計でよく聞かれる質問
Q. Excelとテーブルの違いは何ですか?
A. Excelのセルは何でも自由に入力できますが、Accessのテーブルはフィールドごとにデータ型が決まっており、ルールに違反したデータは入力できません。また、Accessは複数テーブルをリレーションシップで結合してクエリやレポートを作成できる点が大きな違いです。Excelは数百行程度の少量データ管理に向いており、Accessは数万件以上の大量データ・複雑な集計・複数ユーザーでの共有に向いています。
Q. 主キーは必ず設定しなければなりませんか?
A. 技術的には主キーなしでテーブルを保存できますが、リレーションシップを設定したり、フォームで更新操作をしたりする場合は主キーが必要です。また、Accessはテーブル保存時に主キーがなければ「主キーを設定しますか?」と確認します。MOS試験でも主キーの設定は基本要件として求められます。必ず設定する習慣をつけましょう。
Q. データ型はあとから変更できますか?
A. 変更は可能ですが、既存データが変換できない場合はエラーになることがあります。たとえばテキスト型のフィールドに「ABC」などの文字が入っている状態で数値型に変換しようとするとエラーになります。また、フィールドサイズを小さくすると既存データが切り捨てられる危険があります。変更前に必ずバックアップを取ることを強くおすすめします。
Q. オートナンバーの番号が飛んでしまいます。直せますか?
A. オートナンバーは一度割り当てられた番号は削除されてもそのまま欠番になります(これは正常な動作です)。連番を維持したい場合は、数値型の主キーフィールドを用意して手動または計算で番号を管理する方法があります。ただし、主キーの値に業務的な意味を持たせることは設計上推奨されません。主キーはあくまで「内部的な識別子」として扱い、欠番を気にしない運用が健全です。
Q. MOS Access試験の合格に向けて、テーブル設計はどれくらい重要ですか?
A. 非常に重要です。MOS Access試験では「テーブルの作成・変更」分野からテーブル設計に関する問題が多数出題されます。フィールドのデータ型設定、主キー設定、フィールドプロパティの変更などは頻出タスクです。試験合格のためには本記事で紹介したすべての操作を実際にAccessで繰り返し練習することを強くおすすめします。とくにフィールドプロパティ(値要求・入力規則・既定値)の設定は見落としがちなので重点的に練習してください。
Q. テーブルの設計を変更するとフォームやクエリに影響しますか?
A. 影響します。フィールドを削除・名前変更すると、そのフィールドを参照しているフォーム・クエリ・レポートでエラーが発生する場合があります。設計変更後は関連するオブジェクトを必ず確認・修正してください。フィールド名は設計初期に慎重に決めることが重要です。名前を変更する場合は、「名前の変更」機能(右クリック→「名前の変更」)を使うと参照先も自動更新されることがあります。
Q. ルックアップウィザードはどんなときに使いますか?
A. ルックアップウィザードは、フィールドに入力できる値をドロップダウンリストから選択させたいときに使います。選択肢の設定方法は2種類あります。①「値リスト」:「東京都」「大阪府」「愛知県」など固定の選択肢を直接入力する方法。②「テーブル/クエリ」:別テーブルのデータを参照してリストを作成する方法(リレーションシップと連携)。MOS試験では両方の設定方法が出題されることがあります。
まとめ:Accessテーブル設計をマスターするための学習ロードマップ
Accessのテーブル設計は、データベース活用の第一歩であり、MOS試験合格の重要ポイントでもあります。本記事でカバーした内容を振り返りましょう。
- テーブルの基本:フィールド・レコード・主キーの概念を理解する
- デザインビュー:テーブル設計はデザインビューで行う。画面構成を覚える
- データ型:用途に合ったデータ型を選ぶ(電話番号はテキスト型、金額は通貨型など)
- 主キー:一意性・非Null性を満たすフィールドを主キーに設定する
- フィールドプロパティ:値要求・入力規則・インデックスを活用する
- 正規化:第3正規形までを意識した設計でデータ重複を排除する
- リレーションシップ:参照整合性でデータの一貫性を守る
- 練習:実際にAccessで手を動かし、繰り返し操作を体で覚える
学習の次のステップとして、実際にAccessを開いてサンプルデータベースを作成することをおすすめします。本記事で紹介した「顧客管理データベース」を自分で設計・作成してみると、テーブル設計の理解が格段に深まります。
Excel・Word・PowerPointとあわせてAccessもマスターして、MOS試験での高得点・合格を目指しましょう。本サイトでは他のMOS試験対策記事も公開していますので、ぜひ合わせてご活用ください。
