ACCESS リストボックスの作り方

リストボックスの作り方

ACCESSのフォームでは、既定の値の一覧から選択するリストボックスを作成することができます。

今回は、ACCESSでのリストボックスの作成方法をご紹介します。


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

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

完成形

まずは完成したリストボックスから見ていきます。

このフォームでは、商品名がリストボックスで選択できるようになっています。

商品名はMST_商品というテーブルを作成しており、その値を表示しています。

MST_商品の内容は下記のとおりです。

リストボックスでは、4列目の商品名フィールドを表示しています。

では、このリストボックスの作り方を見ていきましょう。

リストボックス作成

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

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

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

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

こんな形で、普通のテキストボックスになってしまいます。

それでは、デザインビューからリストボックスに変更しましょう。

テキストボックスを右クリックして、「コントロールの種類の変更」から「リストボックス」を選択します。

すると、リストボックスに変わりました。

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

これは、リストボックスの「値集合ソース」を設定していないからです。

デザインビューでプロパティシートを見てみましょう。

リストボックスの値集合ソースが空白になっていますね。

ここに、リストボックスに表示したいテーブルまたはクエリを設定します。

今回は商品名を表示したいので、商品情報を格納しているテーブル「MST_商品」を設定します。

では、値集合ソースを設定すれば、リストボックスに商品名(MST_商品の4列目)が上手く表示できるでしょうか。

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

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

これはなぜかというと、「MST_商品」テーブルの1列目のフィールドをリストボックスに表示しているためです。

「MST_商品」の1列目は「商品識別ID」ですよね。

これをリストボックスに表示してもどの商品だかわかりません。

それでは、商品名を表示できるように再度デザインビューで設定を変えてみましょう。

プロパティシートの「書式」タブで列数と列幅を変更します。

列数は、値集合ソースのテーブルもしくはクエリを何列目まで表示するかを示しています。
今回は商品名が4列目なので4にします。

列幅は、コンボボックスの列の表示幅を、値集合ソースの各列ごとに設定するものです。
表示したくない列は幅を0cmにします。

今回は0cm;0cm;0cm;6.5cmと設定しました。

値集合ソースである「MST_商品」のフィールドと合わせてみると、列幅は
商品識別ID:0cm
商品ID:0cm
商品区分ID:0cm
商品名:6.5cm
という設定をしていることになります。

数字しか入っていない商品IDなどはリストボックスに表示する必要が無いので、幅を0にしているのです。

あとはリストの表示行数を「高さ」で調整しましょう。

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

このように、狙い通り商品名がリストボックスに表示できるようになりました。

この機能は非常によく使いますので、設定方法を覚えておくと便利です。

リストの並べ替え

ここまででリストボックスは作成できました。

ただ、この方法ですとリストに表示される順番はテーブルに登録された順番で固定になってしまいます。

リストの順番を変えたい場合もありますよね。

そこで、商品名順にリストに順番を並べ替える方法をご紹介します。

まず、クエリを作成します。

クエリデザインを選択しましょう。

クエリのデザインビュー

クエリの上段(フィールドリスト)に「MST_商品」テーブルを追加し、さらにテーブルのすべてのフィールドを下段のデザイングリッドにドラッグアンドドロップします。

そして、並べ替えを行う商品名フィールドで「並べ替え」列に「昇順」を設定します。

データシートビューで結果を見てみましょう。

商品名順に並べ替えができていますね。

このクエリを保存します。

そして、フォームに戻ります。

先ほどのフォームをデザインビューで開き、リストボックスの値集合ソースを、作成したクエリに変更します。

これで、リストボックスがクエリを基に値を表示するようになりました。

フォームビューで見てみましょう。

無事にリストの並べ替えができました。

実はリストの並べ替えは今回のようにクエリを作らずとも、フォームの値集合ソースからクエリビルダーで設定することもできます。

しかし、この方法ですとクエリが作成されず、値集合ソースに何を使っているかわかりにくくなります。

そのため、値集合ソースに使用する場合はクエリを作成しておくことをお勧めします。

以上、リストボックスの作り方をご紹介しました。


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

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

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

サービス一覧

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