ルックアップ フィールドを作成すると、データの意味が向上するだけでなく、入力できる値を制限することでデータ入力エラーを回避するのに役立ちます。 参照フィールドには、ソース データ テーブル内の別の値にバインドされたわかりやすい値を表示できます。 たとえば、ある注文について顧客を注文テーブルに記録するとします。 ただし、すべての顧客情報は顧客テーブルに記録されています。 コンボ ボックスまたはリスト ボックス コントロールの顧客情報を表示するルックアップ フィールドを作成できます。 次に、そのコントロールで顧客を選択すると、顧客のプライマリ キー値など、適切な値が注文レコードに保存されます。
メモ Access には、プロパティで定義された有効な値を持つ 1 つの値のみを格納する値リスト フィールドと、コンマ (,) で区切られた 1 つのフィールドに最大 100 個の値を格納できる複数値フィールドがあります。 詳細については、「値リスト フィールドを作成または削除する」と「複数値を持つフィールドの作成または削除」を参照してください。
この記事の内容
- ルックアップ フィールドとは何か
- デザイン ビューでルックアップ フィールドを作成する
- 連結値と表示値を理解する
- ルックアップ フィールドのプロパティを更新する
- ルックアップ フィールドを削除する
- ルックアップ フィールドのプロパティ
ルックアップ フィールドとは何か
ルックアップ フィールドとは、値を別のテーブルまたはクエリから取得するテーブルのフィールドです。 可能な限り、ルックアップ ウィザードを使用してルックアップ フィールドを作成してください。 ルックアップ ウィザードを利用すれば、プロセスが簡単になり、適切なフィールド プロパティが自動的に入力され、適切なテーブル関係が作成されます。
デザイン ビューでルックアップ フィールドを作成する
テーブルを [デザイン ビュー] で開きます。
最初に使用できる空の行で、[ フィールド名 ] 列のセルを選択し、ルックアップ フィールドのフィールド名を入力します。
その行の [データ型 ] 列で矢印を選択し、ドロップダウン リストで [ 参照ウィザード] を選択します。
メモ ルックアップ ウィザードでは、ウィザードで選択した内容に応じて、ルックアップ フィールド、値リスト フィールド、および複数値フィールドの 3 種類のリストが作成されます。ウィザードで、次の手順に正確に従います。
- 最初のページで、[ ルックアップ フィールドで別のテーブルまたはクエリから値を取得する] を選択し、[ 次へ] を選択します。
- 2 番目のページで、値を含むテーブルまたはクエリを選択し、[ 次へ] を選択します。
- 3 番目のページで、1 つ以上のフィールドを選択し、[ 次へ] を選択します。
- 4 番目のページで、リストに表示されるフィールドの並べ替え順序を選択し、[ 次へ] を選択します。
- 5 番目のページで、列の幅を調整して値を読みやすくし、[ 次へ] を選択します。
- 6 番目のページで、フィールド名をそのまま使用するか、新しい名前を入力し、[ データの整合性を有効にする] を選択し、[ カスケード削除] または [ 削除の制限 ] オプションを選択して、[完了] を選択 します。
参照整合性の強制については、「リレーションシップを作成、編集、または削除する」を参照してください。
変更内容を保存します。
連結値と表示値を理解する
ルックアップ フィールドの目的は、ID などの番号の表示を、名前など、もっとわかりやすいものに置き換えることです。 たとえば、担当者の ID 番号を表示する代わりに、Access では担当者の名前を表示できます。 担当者の ID 番号は連結値です。 ソースのテーブルまたはクエリで自動的に参照され、担当者の名前で置き換えられます。 担当者の名前は表示値です。
ルックアップ フィールドの表示値とその連結値の違いを理解することが重要になります。 表示値は、既定でデータシート ビューに自動的に表示されます。 ただし、連結値は、格納され、クエリ条件で使用され、他のテーブルとの連結において既定で Access によって使用されます。
AssignedTo ルックアップ フィールドの次の例では:
1 従業員名は表示値です
2 従業員 ID はバインドされた値であり、ルックアップ フィールド プロパティの Bound Column プロパティに格納されます。
ルックアップ フィールドのプロパティを更新する
ルックアップ ウィザードを使用してルックアップ フィールドを作成すると、ルックアップ フィールドのプロパティは自動的に設定されます。 複数値を持つフィールドのデザインを変更するには、フィールドの [ルックアップ] プロパティを設定します。
- テーブルを [デザイン ビュー] で開きます。
- [フィールド名] 列でルックアップ フィールドの 名前を選択 します。
- [ フィールドのプロパティ] で、[ 参照 ] タブを選択します。
- [ 表示コントロール] プロパティを [コンボ ボックス] に設定すると、選択内容を反映するために使用可能なすべてのプロパティの変更が表示されます。 詳細については、「ルックアップ フィールドのプロパティ」を参照してください。
ルックアップ フィールドを削除する
大事な データを含むルックアップ フィールドを削除すると、そのデータは完全に失われます。削除を元に戻すことはできません。 この理由から、テーブルのフィールドやその他のデータベースのコンポーネントを削除する前に、データベースをバックアップすることをおすすめします。 また、参照整合性が強制されるため、ルックアップ フィールドを削除できない場合があります。 詳細については、「リレーションシップを作成、編集、または削除する」を参照してください。
データシート ビューから削除する
- テーブルを [データシート ビュー] で開きます。
- ルックアップ フィールドを見つけ、ヘッダー行を右クリックし、[フィールドの 削除] を選択します。
- [ はい] を 選択して削除を確定します。
デザイン ビューから削除する
- テーブルを [デザイン ビュー] で開きます。
- ルックアップ フィールドの横にある行セレクターを選択し、DELETE キーを押すか、行セレクターを右クリックして [ 行の削除] を選択します。
- [ はい] を 選択して削除を確定します。
ルックアップ フィールドのプロパティ
| 設定するプロパティ | 目的 |
|---|---|
| 表示コントロール | このプロパティを設定して、どのプロパティを表示するかを制御します。
|
| 行ソースの種類 | ルックアップ フィールドへ入力する値は、別のテーブルまたはクエリからの値を使用するのか、指定する値のリストの値を使用するのかを選択します。 テーブルまたはクエリのフィールドの名前を使用してリストを埋めることもできます。 |
| 行ソース | ルックアップ フィールドの値を提供するテーブル、クエリ、または値のリストを指定します。 [行ソースの種類] が [テーブル/クエリ] または [フィールド リスト] に設定されている場合は、このプロパティはテーブルまたはクエリの名前、またはクエリを表す SQL ステートメントに設定する必要があります。 [行ソースの種類] が [値リスト] に設定されている場合は、このプロパティはセミコロンで区切られた値のリストを含める必要があります。 |
| 連結列 | ルックアップ フィールドに格納されている値を提供する列を行ソースで指定します。 この値には、1 から行ソース内の列数の範囲の値を使用できます。 格納する値を提供する列は、表示列と同じ列と同じである必要はありません。 |
| 列数 | ルックアップ フィールドに表示できる行ソースの列数を指定します。 表示する列を選択するには、[列幅] プロパティで列幅を指定します。 |
| 列見出し | 列見出しを表示するかどうかを指定します。 |
| 列幅 | 各列の列幅を入力します。 ルックアップ フィールドの表示値は、[列幅] プロパティで 0 以外の幅に指定された列の数です。 特定の列 (ID 列など) を表示させないようにするには、幅に 0 を指定します。 |
| リスト行数 | ルックアップ フィールドを表示するときに表示される行の数を指定します。 |
| リスト幅 | ルックアップ フィールドを表示するときに表示されるコントロールの幅を指定します。 |
| 入力チェック | リストにない値を入力可能にするかどうかを選択します。 |
| 複数の値を許可する | ルックアップ フィールドで複数の値を選択できるかどうかを示します。 このプロパティの値は、「はい」から「いいえ」に変更できません。 |
| 値リストの編集の許可 | 値リストに基づくルックアップ フィールドのアイテムを編集可能にするかどうかを指定します。 このプロパティが [はい] に設定されている場合、単一列の値リストに基づくルックアップ フィールドを右クリックすると、[リスト項目の編集] メニュー オプションが表示されます。 ルックアップ フィールドに複数の列がある場合は、このプロパティは無視されます。 |
| リスト項目編集フォーム | テーブルまたはクエリに基づくルックアップ フィールドのリスト項目を編集するために使用する、既存のフォームを指定します。 |
| 値集合ソースの値のみの表示 | [複数の値を許可する] が [はい] に設定されている場合は、現在の行ソースに一致する値のみを表示します。 |