お久しぶりです。更新をさぼっているTomです(><;)気が付いたら約1カ月ぶりでした。
今回はAccessにおけるルックアップフィールドについて書いていこうと思います。
ルックアップフィールド
ルックアップフィールドは別のテーブル、クエリなどから値を取得して、コンボボックスやリストボックスに表示するように設定したフィールドのことです。ルックアップ列とも呼ばれます。
例えば、図1のようにT_クラスというテーブル、図2のようにT_メンバーというテーブルがあるとします。

図1:T_クラス

図2:T_メンバー
T_メンバーには、クラス、名前というフィールドがあります。
ここで、図3のようにT_メンバーのクラスフィールドに、T_クラスのクラス名(SとかAとか)をコンボボックスに表示したいとします。(T_メンバーのクラスフィールド([T_メンバー].[クラス])とT_クラスのクラスフィールド([T_クラス].[クラス])に注意して読んでください。)

図3:ルックアップフィールドであるクラス
T_メンバーのクラスを選択するとコンボボックスが表示され、T_クラスのクラスフィールドにあるクラス名が表示されていることがわかります。このT_メンバーのクラスフィールドがクラスフィールドがルックアップフィールドです。
図3では、コンボボックスにT_クラスのクラスを表示させましたが、リストボックスにクエリの結果を表示させたり、自分で決めた値(値リスト)を表示するように設定することも可能です。
今回は図1、図2の環境で図3のようなルックアップフィールドを作成する手順を説明します。
ルックアップフィールドの作り方
ルックアップフィールドを作成する方法は2つあります。1つが、ルックアップウィザードを使用する方法(おすすめ)、もうひとつが、ルックアップのプロパティを使用する方法です。基本的にはルックアップウィザードを使用した方が簡単だと思います。
ルックアップウィザードを使用
ルックアップウィザードを使用した場合、基本的に画面の説明どおりに進んでいけば大丈夫です。
T_メンバーのクラスのデータ型に「ルックアップウィザード」というものがあるのでそれをクリックします。(リレーションシップが設定されていると警告が出るので、出た場合はリレーションシップを消去しておきます。)

図4:ルックアップウィザードの選択
今回は、T_クラスというテーブルから値を取得するため、「ルックアップフィールドの値を別のテーブルまたはクエリから取得する」を選択します。

図5
T_クラスのクラスの値を参照元にするため、T_クラスを選択します。

図6
リスト(コンボ)ボックスの並び替えについての設定画面です。ここでは、T_クラスのIDについて、昇順に並べてみます。

図7
ルックアップフィールドの幅を設定することができます。

図8
ルックアップフィールドにラベルを付けることができます。また、データの整合性についての設定、複数の値についての設定も可能です。

図9
完了ボタンを押せば、ルックアップフィールドの完成です。
ルックアップのプロパティを使用
T_メンバーのデザインの画面で、ルックアップタブを選択(図10の赤枠)し、それぞれの内容を決めていきます。図10は今回の例において、ルックアップウィザードを使用した後のルックアップのプロパティ画面です。

図10:ルックアップのプロパティ画面
表示コントール | テキストボックス、リストボックス、コンボボックスのいずれかを選択します。 |
値集合タイプ | テーブル/クエリ、値リスト、フィールドリストのいずれか選択します。 |
値集合ソース | 値の参照元となるテーブル、クエリ、SQL文を設定します。値集合タイプで値リストを選択した場合は、1;2;3;4;5;のように要素を;(セミコロン)で区切ります。 |
連結列 | 連結するフィールドを設定します。今回の場合は、T_クラスのIDが連結するフィールドとなるため、D列は1列目なので1を入力しています。 |
列数 | 列の数を入力します。(値集合ソースの数を1~255までの間で指定) |
列見出し | 列見出しを表示するかどうかを設定します。 |
列幅 | 列の幅を設定します。非表示にしたいフィールドは0にします。今回の場合は、T_クラスはID、クラスというフィールドを持つため、0cm;1cm;のように設定します。各フィールドごとに;(セミコロン)で区切ります。 |
リスト行数 | ルックアップフィールドに表示する行数を入力します。 |
リスト幅 | ルックアップフィールドの幅を入力します。 |
入力チェック | リストにある値のみ入力するときは「はい」、リストにない値も入力するときは「いいえ」を選択します。 |
複数の値の許可 | 「はい」を選択すると、複数の値を入力できるようになります。![]() 図:複数の値(イメージ) |
値リストの編集の許可 | 「はい」を選択時、ルックアップフィールドを右クリックすると、「リスト項目の編集」が表示され、値リストを編集することができます。 |
リスト項目編集フォーム | ルックアップフィールドのリストを編集するためのフォームを入力できます。 |
値集合ソースの値のみの表示 | 複数の値の許可がはいのとき、値集合ソースと一致する値のみ表示します。 |
コメント