ルックアップ リスト ボックスとルックアップ コンボ ボックスでのデータの表示と編集

提供: RAD Studio
移動先: 案内検索

単一レコードの表示 への移動


ルックアップ リスト ボックスとルックアップ コンボ ボックス(Vcl.DBCtrls.TDBLookupListBox および Vcl.DBCtrls.TDBLookupComboBox)は、有効なフィールド値を設定するための限られた選択肢のリストをユーザーに提示します。ユーザーがリスト項目を選択すると、背後にあるデータセットの対応するフィールドの値が変更されます。

たとえば、フィールドが OrdersTable に関連付けられた注文フォームがあるとします。OrdersTable には顧客 ID に対応する CustNo フィールドがありますが、OrdersTable にはそれ以外の顧客情報は含まれていません。それに対して CustomersTable には、顧客 ID に対応する CustNo フィールドがあり、さらに、顧客の会社名や住所などの追加情報も含まれています。事務員が請求書を作成するときには、注文フォームで顧客 ID ではなく会社名によって顧客を選択できれば便利です。CustomersTable 内のすべての会社名を表示する TDBLookupListBox があると、ユーザーはリストから会社名を選択し、それに応じて注文フォームの CustNo を設定することができます。

これらのルックアップ コントロールは、表示する項目のリストを次の 2 つのソースのいずれかから取得します。

データセットに定義されたルックアップ フィールド。ルックアップ フィールドを使ってリスト ボックスの項目を指定するには、コントロールをリンクする先のデータセットに既にルックアップ フィールドが定義されている必要があります。

リスト ボックスの項目に使用するルックアップ フィールドを指定するには:

  1. リスト ボックスの DataSource プロパティを、使用するルックアップ フィールドを含むデータセットのデータ ソースに設定します。
  2. DataField プロパティのドロップダウン リストから、使用するルックアップ フィールドを選択します。
  3. ルックアップ コントロールに関連付けたテーブルをアクティブにすると、コントロールはデータ フィールドがルックアップ フィールドであることを認識し、ルックアップの結果の適切な値を表示します。

二次データ ソース、データ フィールド、キー。データセットにルックアップ フィールドを定義していない場合には、二次データ ソース、二次データ ソース内で検索するフィールド値、リスト項目として返すフィールド値を使用して、同様の関係を確立することができます。

リスト ボックス項目の二次データ ソースを指定するには:

  1. リスト ボックスの DataSource プロパティを、コントロールのデータ ソースに設定します。
  2. ルックアップした値を挿入するフィールドを、DataField プロパティのドロップダウン リストから選択します。選択するフィールドはルックアップ フィールドであってはなりません。
  3. リスト ボックスの ListSource プロパティを、値をルックアップするフィールドを含むデータセットのデータ ソースに設定します。
  4. ルックアップ キーとして使用するフィールドを、KeyField プロパティのドロップダウン リストから選択します。ドロップダウン リストには、ステップ 3 で指定したデータ ソースに関連付けられたデータセットのフィールドが表示されます。選択するフィールドはインデックスに含まれていなくてもかまいませんが、含まれている場合にはルックアップのパフォーマンスはさらに向上します。
  5. 値を返すフィールドを、ListField プロパティのドロップダウン リストから選択します。ドロップダウン リストには、ステップ 3 で指定したデータ ソースに関連付けられたデータセットのフィールドが表示されます。

ルックアップ コントロールに関連付けたテーブルをアクティブにすると、コントロールはリスト項目が二次データ ソースから取得されたものであることを認識し、そのソースの適切な値を表示します。

TDBLookupListBox コントロールに一度に表示する項目の数を指定するには、RowCount プロパティを使用します。リスト ボックスの高さは、この行数に合わせてぴったりと調節されます。

TDBLookupComboBox のドロップダウン リストに表示する項目の数を指定するには、DropDownRows プロパティの方を使用します。

メモ: ルックアップ コンボ ボックスとして機能するようデータ グリッド内の列を設定することもできます。その方法は、「ルックアップ リスト列の定義」を参照してください。

関連項目