Accessのデータシートビューでレコードを直接入力するとき、「担当者名を毎回手打ちするのでスペルミスが続出する」「部署コードを正確に入力するにはコード表を別画面で開かなければならない」という場面に遭遇することがあります。この課題をテーブルのフィールドレベルで解決する機能がルックアップフィールドです。
ルックアップフィールドを設定すると、そのフィールドをクリックしたときにドロップダウンリストが表示され、一覧から値を選択して入力できるようになります。フォームのコンボボックスとよく比較されますが、ルックアップフィールドはテーブルの設計段階で組み込まれるため、フォームを作らなくてもデータシートビューで機能する点が特徴です。本記事ではルックアップウィザードの操作手順から表示値と保存値の違い、削除連鎖の注意点、MOS試験との対応関係まで実務視点で解説します。
ルックアップフィールドとは
Accessのルックアップフィールドとは、テーブルのデザインビューでフィールドのデータ型として「ルックアップ ウィザード」を選択することで設定できる機能です。設定後はそのフィールドにドロップダウンリストが付き、あらかじめ定義した選択肢または別テーブルのデータから値を選んで入力できます。
入力値の候補は次の2種類から選べます。
| 種類 | 概要 | 向いているケース |
|---|---|---|
| 値一覧 | ウィザードで手動入力した固定リスト | 選択肢が5件以下など少数で変わらない場合 |
| テーブル・クエリ参照 | 別テーブルやクエリのフィールドを動的に読み込む | マスタテーブルの追加・変更を自動反映したい場合 |
実際のデータ型は「ルックアップ ウィザード」そのものではなく、ウィザードで選んだ値に応じてテキスト型・数値型などが割り当てられます。「ルックアップ ウィザード」はあくまでもルックアップ設定を行うためのインターフェイスです。
ルックアップウィザードの起動手順
ルックアップフィールドはテーブルのデザインビューから設定します。以下の手順で進めてください。
- 対象テーブルをデザインビューで開く(ナビゲーションウィンドウでテーブルを右クリック→「デザインビュー」)
- ルックアップを設定したいフィールドの行を選択する
- 「データ型」列のドロップダウンを開き、一覧の最下部にある「ルックアップ ウィザード…」を選択する
- ウィザードが起動するので、以降のステップに従う
値一覧(手動リスト)を設定する手順
選択肢が少なく固定されている場合は値一覧が簡単です。例として「ステータス」フィールドに「未着手・進行中・完了・保留」の4択リストを設定します。
ステップ1:データのソースを選択する
ウィザードの最初の画面で「入力する値を自分で指定します」を選択し、「次へ」をクリックします。
ステップ2:値を入力する
「列数」は通常1のままにします。「列1」の各行に表示させたい値を1つずつ入力します。
未着手
進行中
完了
保留
行を追加するには下の空白セルをクリックします。入力が終わったら「次へ」をクリックします。
ステップ3:ラベルを確認して完了する
フィールド名を確認し、必要に応じて変更してから「完了」をクリックします。デザインビューで保存するとルックアップの設定が有効になります。
データシートビューで該当フィールドをクリックすると、設定した4つの選択肢がドロップダウンで表示されます。
テーブル・クエリを参照する設定手順
マスタテーブルの内容を動的に読み込む設定は、選択肢の追加・変更がマスタ側の更新だけで済むためメンテナンスが楽になります。例として「受注テーブル」の「担当者ID」フィールドに「担当者マスタ」テーブルの氏名リストを参照させます。
ステップ1:データのソースを選択する
ウィザードの最初の画面で「テーブルまたはクエリから値を検索します」を選択し、「次へ」をクリックします。
ステップ2:テーブルを選択する
一覧から参照先のテーブル(例:担当者マスタ)を選択して「次へ」をクリックします。クエリを使う場合は「表示」オプションで「クエリ」または「すべて」に切り替えます。
ステップ3:表示するフィールドを選択する
「使用可能なフィールド」から「担当者ID」と「氏名」を選択フィールドに追加します。キー列(担当者ID)はリスト表示時に非表示にできるため、両方追加しておきます。「次へ」をクリックします。
ステップ4:並べ替えを設定する
リストの表示順を設定します。氏名の昇順にする場合は「氏名」を選択し「昇順」を維持したまま「次へ」をクリックします。
ステップ5:列幅を調整してキー列を非表示にする
プレビューが表示されます。通常は「キー列を表示しない(推奨)」にチェックが入っています。このままにすると、ドロップダウンには「氏名」だけが表示され、テーブルには「担当者ID」が保存されます。
キー列を表示したい場合はチェックを外し、担当者IDの列幅をドラッグして広げます。「次へ」をクリックします。
ステップ6:削除連鎖の設定(参照整合性)
別テーブル参照の場合、最後のステップでデータ整合性の設定が表示されます。
- 「データ整合性」にチェックを入れると、リレーションシップが作成され担当者マスタに存在しないIDを入力できなくなります
- 「レコードの削除を制限する」は担当者マスタの担当者を削除しようとしたとき、受注テーブルで使われている担当者IDがあれば削除をブロックします
- 「フィールドの削除を連鎖する」は担当者マスタの担当者を削除すると受注テーブルの関連レコードも自動削除されます(操作に注意が必要です)
業務データベースでは「レコードの削除を制限する」が安全です。「フィールドの削除を連鎖する」は意図せずデータを失うリスクがあるため、業務要件を十分確認してから設定してください。「完了」で設定を保存します。
ルックアップフィールドとコンボボックスの違い
ルックアップフィールドとフォームのコンボボックスは外見が似ていますが、設定場所と効果範囲が異なります。
| 比較項目 | ルックアップフィールド | フォームのコンボボックス |
|---|---|---|
| 設定場所 | テーブルのデザインビュー | フォームのデザインビュー |
| 効果範囲 | データシートビューを含む全アクセス | そのフォームを開いた場合のみ |
| 設定の柔軟性 | ウィザードで設定できる範囲に限定 | SQL・VBA・イベントプロシージャまで対応 |
| 他フィールドとの連動 | 困難 | コード1行でAfterUpdateイベント連動可 |
| MOS試験での位置づけ | テーブル設計の範囲 | フォーム設計の範囲 |
データ入力を専用フォームで行うことが決まっている場合は、コンボボックスのほうが細かい制御ができます。フォームを作らずデータシートビューで入力する場面が多い場合は、ルックアップフィールドが手軽です。ただし以下で説明する「落とし穴」があるため、大規模なシステムではコンボボックスのみを使い、ルックアップフィールドは設定しないという方針をとる現場もあります。
重要な落とし穴:表示値と保存値の違い
別テーブル参照のルックアップフィールドで最も注意が必要な点が表示値(テキスト)と保存値(ID)の乖離です。
テーブルには数値IDが保存される
受注テーブルの「担当者ID」フィールドに担当者マスタを参照するルックアップを設定した場合、データシートビューには「田中 一郎」のように氏名が表示されます。しかし、テーブルに実際に保存されているのは担当者IDの数値(例:3)です。
この動作を確認するには「ルックアップ」タブの設定を確認するか、クエリのSQLビューで実行結果を見ます。
クエリで条件を指定するときの注意
ルックアップフィールドに条件を指定する際、表示されている氏名ではなく保存されているIDで絞り込む必要があります。
-- 誤り(氏名でフィルタしようとしている)
SELECT * FROM 受注テーブル WHERE 担当者ID = "田中 一郎"
-- 正しい(担当者IDの数値で指定する)
SELECT * FROM 受注テーブル WHERE 担当者ID = 3
担当者マスタと受注テーブルを結合すれば氏名で検索するクエリを組むこともできますが、ルックアップフィールドだけを見て「氏名が保存されている」と思い込んでしまうと、クエリが意図しない動作をすることがあります。
レポートに正しく表示するには
レポートのレコードソースにルックアップフィールドを含むテーブルを直接使うと、氏名ではなくIDが印刷されることがあります。この場合はレポートのレコードソースを担当者マスタと受注テーブルを結合したクエリに切り替え、氏名フィールドを直接参照するのが確実です。
ルックアップフィールドの設定を変更・解除する方法
設定後に変更や解除が必要になった場合はデザインビューで行います。
- テーブルをデザインビューで開く
- 対象フィールドの行をクリックして選択する
- 画面下部の「ルックアップ」タブをクリックする
- 「コントロールの種類」が「コンボボックス」などになっている場合、「テキスト ボックス」に変更するとドロップダウンリストが解除される
- リスト内容を変更するには「値集合ソース」を直接編集する(値一覧の場合は「”未着手”;”進行中”;”完了”;”保留”」のように変更)
テーブル・クエリ参照の場合、「値集合ソース」にはテーブル名またはSQL文が入っています。参照先のテーブルやフィールドを変えたいときはここを編集します。
「ルックアップ」タブの主要プロパティ一覧
| プロパティ | 説明 |
|---|---|
| コントロールの種類 | テキスト ボックス(なし)/ コンボボックス / リスト ボックス |
| 値集合タイプ | 値一覧 / テーブル/クエリ / フィールドリスト |
| 値集合ソース | 選択肢のリスト文字列またはSQL文・テーブル名 |
| 連結列 | 実際に保存される列の番号(通常は1) |
| 列数 | ドロップダウンに表示する列の数 |
| 列幅 | 各列の幅(0cmにすると非表示) |
| リスト行数 | ドロップダウンに一度に表示する行の数(初期値8) |
| 入力チェック | 「はい」にするとリスト以外の値を入力できなくなる |
「列幅」を「0cm;3cm」のように設定すると、1列目(担当者ID)を非表示にして2列目(氏名)だけを表示できます。ウィザードの「キー列を表示しない」オプションは、この列幅を自動的に設定しています。
実務でのルックアップフィールド活用シナリオ
シナリオ1:受注テーブルに顧客マスタを参照させる
「顧客マスタ」テーブルに顧客ID・会社名・担当部署が登録されている場合、受注テーブルの「顧客ID」フィールドにルックアップを設定すると、データシートビューで受注を入力するオペレーターは会社名を選ぶだけで済みます。新規顧客を追加しても顧客マスタを更新するだけでリストが自動更新されます。
シナリオ2:値一覧で優先度を固定する
タスク管理テーブルの「優先度」フィールドに「高・中・低」の値一覧を設定すると、表記ゆれ(高、高い、HIGH)を防止できます。選択肢が3~5件程度で追加変更がほぼない場合は値一覧のほうがシンプルです。
シナリオ3:都道府県フィールドに47都道府県を設定する
47都道府県を値一覧に直接入力するのは手間がかかります。この場合は都道府県マスタテーブルを用意し、別テーブル参照のルックアップを使うとメンテナンスが不要になります。
MOS Access試験(MO-500)との関係
MOS Access 365試験(MO-500)では、ルックアップフィールドに関連する操作がテーブル設計の範囲として出題対象に含まれます。分野別の出題数・配点は公表されていません。
試験を受ける前に理解しておきたいポイントは次のとおりです。
- ルックアップウィザードの起動方法(デザインビューのデータ型から選択する)
- 値一覧と別テーブル参照の違い、それぞれの設定手順
- 連結列の意味と「キー列を非表示にする」設定
- 「ルックアップ」タブの各プロパティの名称と役割
- 入力チェックの「はい/いいえ」がどちらの挙動をするか
試験の基本情報は次のとおりです(2026年7月時点)。
| 項目 | 内容 |
|---|---|
| 試験時間 | 50分 |
| 採点 | 1000点満点(合格点は非公開、550~850点が目安) |
| 受験料(一般) | 12,980円(税込) |
| 受験料(学割) | 9,680円(税込) |
| 出題形式 | マルチプロジェクト(5~10個のプロジェクト、各1~7問) |
| 合格率 | 合格率は公表されていません |
学習時間の目安はAccess未経験の場合で40~60時間、業務でAccessを使ったことがある方は20~30時間です。1日1時間のペースで取り組むと、未経験の方で約2か月、経験者で3~4週間が目安です(公式非公表のため目安として参照してください)。
テーブル設計に関するルックアップフィールドを確認する際は、架空のデータベースをローカルで作成し、ウィザードを一通り操作してみるのが最も確実な定着方法です。特に「表示値と保存値の違い」はデータシートビューとクエリ結果を並べて比較することで体感できます。
まとめ:ルックアップフィールドの要点
- ルックアップフィールドはテーブルのデザインビューで「ルックアップ ウィザード」を選択して設定し、データシートビューにドロップダウンを付ける
- 選択肢は値一覧(手動)と別テーブル・クエリ参照(動的)の2種類
- 別テーブル参照の場合、テーブルに保存されるのは表示テキストではなくキー列の値(IDなど)
- クエリの条件指定・レポートの表示には、保存値がIDであることを意識して設計する
- 「ルックアップ」タブで後から設定を変更・解除できる
- コンボボックスより制御の自由度は低いが、フォームなしのデータシート入力で即効果を発揮する
- 削除連鎖設定は業務要件を確認してから選択し、「フィールドの削除を連鎖する」は慎重に
PR
改善Excel パフォーマンスを底上げする仕事改善・効率化テクニック
ExcelとAccessをセットで使う実務では、Excelでのデータ整形・集計スキルもAccessの活用効果を高めます。本書はExcelによる業務改善テクニックを豊富な事例で解説しており、Accessへのデータ連携を意識した現場でも実践的に役立ちます。
次のステップ
ルックアップフィールドを理解したら、次はフォームのコンボボックスとの使い分けを実際に試してみましょう。フォームのコンボボックスでは「AfterUpdate」イベントと組み合わせることで、選択した値に応じて別のフィールドを自動入力するといった高度な連動が実装できます。また、ルックアップフィールドで設定したリレーションシップとAccessのリレーションシップウィンドウの関係を確認することで、データベース全体の整合性管理への理解が深まります。
