ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.004

一般的なコンボ ボックスの作成方法について

2003/2007/2010/2013/2016

フォームの処理が便利になるコンボ ボックスを作成しましょう。
作成するのは、一般的なリレーションシップに基づいたコンボ ボックスです。
リレーション(多側)テーブルをベースとするフォームの、共通フィールドとなるコントロールをコンボ ボックスに変更し、主(一側)テーブルのデータをリストに表示します。

今回は、ビジネスホテルの宿泊予約データベース、次のような3つのテーブルが関連付けられたリレーションシップです。

データベースイメージ

上図上はリレーションシップ、下は予約を受け付けるための入力フォームです。

上図のフォームは、リレーション(多側)テーブル[T受付予約]のフィールドをベースに、参照できる詳細情報を主(一側)テーブル[Tプラン一覧]と[T客室一覧]より取っています。
共通フィールドは[プランID]フィールドと[客室番号]フィールドで濃い塗りつぶしの色、主(一側)テーブルからのフィールドは薄い塗りつぶしの色としています。

したがって、共通フィールドである[プランID]を入力すると、主(一側)テーブルにより一意に決まる[プラン名]と[プラン価格]のフィールドは自動で表示される、といった動作となります。

では、[プランID]はテキスト ボックスに手入力することなく、一覧から選択できるようなコンボ ボックスに作り替えてみましょう。
ここで確認すべきことは、共通フィールドをコンボ ボックスにすること、そしてコンボ ボックスのリストに表示するのは、プランの一覧を持つ主(一側)テーブル[Tプラン一覧]ということです。

コンボボックスイメージ

では、長い道のりですがいきましょう。

  1. フォームはデザイン ビューにし、[プランID]のテキスト ボックスを削除します。
  2. 空いたスペースにコンボ ボックスを挿入します。
    このとき、[フォーム デザイン ツール]-[デザイン]タブ-[コントロール]グループ-[コントロール ウィザードの使用]コマンドをオンにして、[コンボ ボックス]ボタンをクリックして挿入します。
    コンボボックス挿入
  3. コンボ ボックス ウィザードが開始されます。
    [コンボ ボックスの値を別のテーブルまたはクエリから取得する]オプションを選択し、[次へ]をクリックします。
    コンボ ボックスの値を別のテーブルまたはクエリから取得する
  4. コンボ ボックスのリストに表示するデータを持つ、主(一側)テーブルを指定し、[次へ]をクリックします。ます。
    リストとなるテーブル設定
  5. 右側[選択したフィールド]に、リストに表示するフィールドを指定します。
    共通フィールドと、選択する際の補助となるフィールド指定し、[次へ]をクリックします。
    選択したフィールド
  6. 次の並べ替えの設定は、必要であれば指定し、[次へ]をクリックします。
  7. [キー列を表示しない (推奨)]チェック ボックスをオフにします。
    同じ画面で、列幅を調整して、[次へ]をクリックします。
    キー列を表示しない
  8. [選択可能なフィールド]には、共通フィールドを指定し、[次へ]をクリックします。
    選択可能なフィールド
  9. [次のフィールドに保存する]オプションを選択し、共通フィールドを指定して、[次へ]をクリックします。
    次のフィールドに保存する
  10. 最後にコンボ ボックスに付けるラベル名に共通フィールドの名前を指定して、[完了]をクリックします。
    ラベル名

以上で、コンボ ボックスは完成です。
実際に選択を変更したりしながら、動作を確認してみましょう。

関連ヘルプ

フォームのテキスト ボックス内で改行するには
パスワードを入力するテキスト ボックスの表示をアスタリスク(*)にする
テキストボックスの内容の編集をできない設定にする
コントロールの入力順を指定する 《タブ オーダー》
フォーム・レポートを別ウィンドウ(ポップアップ)で開くには
twitter hatena line pocket