No.004
一般的なコンボ ボックスの作成方法について
2003/2007/2010/2013/2016
フォームの処理が便利になるコンボ ボックスを作成しましょう。
作成するのは、一般的なリレーションシップに基づいたコンボ ボックスです。
リレーション(多側)テーブルをベースとするフォームの、共通フィールドとなるコントロールをコンボ ボックスに変更し、主(一側)テーブルのデータをリストに表示します。
今回は、ビジネスホテルの宿泊予約データベース、次のような3つのテーブルが関連付けられたリレーションシップです。
上図上はリレーションシップ、下は予約を受け付けるための入力フォームです。
上図のフォームは、リレーション(多側)テーブル[T受付予約]のフィールドをベースに、参照できる詳細情報を主(一側)テーブル[Tプラン一覧]と[T客室一覧]より取っています。
共通フィールドは[プランID]フィールドと[客室番号]フィールドで濃い塗りつぶしの色、主(一側)テーブルからのフィールドは薄い塗りつぶしの色としています。
したがって、共通フィールドである[プランID]を入力すると、主(一側)テーブルにより一意に決まる[プラン名]と[プラン価格]のフィールドは自動で表示される、といった動作となります。
では、[プランID]はテキスト ボックスに手入力することなく、一覧から選択できるようなコンボ ボックスに作り替えてみましょう。
ここで確認すべきことは、共通フィールドをコンボ ボックスにすること、そしてコンボ ボックスのリストに表示するのは、プランの一覧を持つ主(一側)テーブル[Tプラン一覧]ということです。
では、長い道のりですがいきましょう。
- フォームはデザイン ビューにし、[プランID]のテキスト ボックスを削除します。
- 空いたスペースにコンボ ボックスを挿入します。
このとき、[フォーム デザイン ツール]-[デザイン]タブ-[コントロール]グループ-[コントロール ウィザードの使用]コマンドをオンにして、[コンボ ボックス]ボタンをクリックして挿入します。
- コンボ ボックス ウィザードが開始されます。
[コンボ ボックスの値を別のテーブルまたはクエリから取得する]オプションを選択し、[次へ]をクリックします。
- コンボ ボックスのリストに表示するデータを持つ、主(一側)テーブルを指定し、[次へ]をクリックします。ます。
- 右側[選択したフィールド]に、リストに表示するフィールドを指定します。
共通フィールドと、選択する際の補助となるフィールド指定し、[次へ]をクリックします。
- 次の並べ替えの設定は、必要であれば指定し、[次へ]をクリックします。
- [キー列を表示しない (推奨)]チェック ボックスをオフにします。
同じ画面で、列幅を調整して、[次へ]をクリックします。
- [選択可能なフィールド]には、共通フィールドを指定し、[次へ]をクリックします。
- [次のフィールドに保存する]オプションを選択し、共通フィールドを指定して、[次へ]をクリックします。
- 最後にコンボ ボックスに付けるラベル名に共通フィールドの名前を指定して、[完了]をクリックします。
以上で、コンボ ボックスは完成です。
実際に選択を変更したりしながら、動作を確認してみましょう。