ACCESS テーブルを元にコンボボックスを作る方法

テーブルを元にコンボボックスを作る方法

ACCESSのフォームでは、データを入力する際にコンボボックスを良く使用します。

コンボボックスとは、あらかじめ決まった値がプルダウンで選択できるものです。

コンボボックスを使えば入力するデータを制御できるので、開発者の予測しないデータの入力を防ぐことができ、また入力する人にとっても文字を入力せずにマウス操作だけで入力できる簡易さがあります。

このコンボボックスにテーブルの値を表示させる方法を見ていきましょう。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

完成形

まず完成形から見てみましょう。

上記の写真のように、商品名検索がコンボボックスになっています。

そしてそのコンボボックスの選択肢には商品マスターの商品名を表示しています。
これの作り方を見ていきましょう。

コンボボックス作成

まずはフォームにコンボボックスを作りましょう。

ACCESSのメニューから、「作成」→「フォームデザイン」を選択し、空のフォームを作成します。

次に、上段のフォームデザインメニューから「テキストボックス」を選択して、フォームの適当な場所に配置します。

今回は下記のように商品名検索用テキストボックスを作成しました。

この状態でフォームビューを見ると、

こんな形で、普通の入力ボックスになってしまいます。
それでは、デザインビューからコンボボックス化させましょう。

コントロールを右クリックして、「コントロールの種類の変更」から「コンボボックス」を選択します。
すると、コントロールがコンボボックスに変わりました。

しかし、コンボボックスには値が出ていません。

これは、コンボボックスの「値集合ソース」を設定していないからです。
デザインビューでプロパティシートを見てみましょう。

上記のデータタブの値集合ソースに、コンボボックスに表示したいテーブルまたはクエリを設定します。
今回は商品名を表示したいので、商品情報を格納しているテーブル「MST_商品」を設定します。

なお、「MST_商品」はこんな内容のテーブルです。

では、値集合ソースを設定すれば、コンボボックスに商品名(MST_商品の3列目)が上手く表示できるでしょうか。
フォームビューで結果を見てみましょう。

はい。
できません。数字が出てきます。

これはなぜかというと、「MST_商品」テーブルの1列目のフィールドをコンボボックスに表示しているためです。
「MST_商品」の1列目は「商品ID」ですよね。
これをコンボボックスに表示してもどの商品だかわかりません。
ここから再度デザインビューで設定を変えてみましょう。

プロパティシートの「書式」タブで列数と列幅を変更します。
列数は、値集合ソースの表示したい列の数を入れます。今回は商品名が3列目なので3にします。
列幅は、コンボボックスの列の表示幅を、値集合ソースの各列ごとに設定するものです。
今回は0cm;0cm;9cmと設定しています。
値集合ソースである「MST_商品」のフィールドと合わせてみると、列幅は
商品ID:0cm
事業ID:0cm
商品名:9cm
という設定をしていることになります。
数字しか入っていない商品IDと事業IDはコンボボックスに表示する必要が無いので、幅を0にしているのです。

では、再度フォームビューで結果を見てみましょう。

このように、狙い通り商品名がコンボボックスに表示できるようになりました。
この機能は非常によく使いますので、設定方法を覚えておくと便利です。

以上、ACCESSのコンボボックスの内容をテーブルと連動させる方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。