ルックアップ フィールドを作成すると、データの意味が改善されるだけでなく、入力できる値を制限することでデータ入力エラーを回避できます。 ルックアップ フィールドには、ソース データ テーブルにある別の値に連結されている、ユーザーにとってわかりやすい値を表示できます。 たとえば、ある注文について顧客を注文テーブルに記録するとします。 ただし、すべての顧客情報は顧客テーブルに記録されています。 コンボ ボックスまたはリスト ボックス コントロールの顧客情報を表示するルックアップ フィールドを作成できます。 次に、そのコントロールで顧客を選択すると、顧客のプライマリ キー値など、適切な値が注文レコードに保存されます。
メモ Access には他の種類のリスト フィールドがあります。値リスト フィールドには、有効な値がプロパティに定義されている唯一の値が格納されます。複数値フィールドでは、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 を指定します。 |
リスト行数 |
ルックアップ フィールドを表示するときに表示される行の数を指定します。 |
リスト幅 |
ルックアップ フィールドを表示するときに表示されるコントロールの幅を指定します。 |
入力チェック |
リストにない値を入力可能にするかどうかを選択します。 |
複数の値を許可する |
ルックアップ フィールドで複数の値を選択できるかどうかを示します。 このプロパティの値は、「はい」から「いいえ」に変更できません。 |
値リストの編集の許可 |
値リストに基づくルックアップ フィールドのアイテムを編集可能にするかどうかを指定します。 このプロパティが [はい] に設定されている場合、単一列の値リストに基づくルックアップ フィールドを右クリックすると、[リスト項目の編集] メニュー オプションが表示されます。 ルックアップ フィールドに複数の列がある場合は、このプロパティは無視されます。 |
リスト項目編集フォーム |
テーブルまたはクエリに基づくルックアップ フィールドのリスト項目を編集するために使用する、既存のフォームを指定します。 |
値集合ソースの値のみの表示 |
[複数の値を許可する] が [はい] に設定されている場合は、現在の行ソースに一致する値のみを表示します。 |