コンボボックスのリストに表示するデータの設定方法
Accessのコンボボックスでリストに表示しているデータを設定する方法です。
最初はどういう構造になっているのか分からずに使いづらい印象がありましたが、慣れると簡単な設定で表示を切り替えることができます。
目次
- リストの内容
- プロパティの設定(値集合ソース、列数、列幅、連結列)
- ウィザードを使ってリストを作成
リストの内容
今回は以下のようなコンボボックスを作成します。
ぱっと見は単純な項目一覧に見えますが、裏側では商品カテゴリの名称だけではなく、コードも保持しています。
プロパティの設定(値集合ソース、列数、列幅、連結列)
コンボボックスのリストを作成する上で重要なプロパティは値集合ソース、列数、列幅、連結列の4つ。
例で示したようなコンボボックスを作成するには、まず、コンボボックスの値集合ソースに表示したいデータを設定します(取得先がテーブル/クエリの場合、簡単なものであればクエリビルダ―を使うと楽)。
続いて列数と列幅を設定します。
ここで重要なポイントは、表示したくない列の幅を「0cm」に設定することです。
最後に連結列を指定。
連結列にはデータベースに登録するコード(またはID)を設定するので、今回は1番目の列の「コード」を指定しています。
設定は以上です。簡単ですね。
ちなみに設定した連結列のデータをVBAで読み取る場合、コンボボックスのプロパティ「ItemData」から読み取ることができます。
For i = 0 To [cmb商品カテゴリ].ListCount - 1
Debug.Print [cmb商品カテゴリ].ItemData(i)
Next
上記の例では、連結列を「1」にした場合、商品カテゴリのコード「001」「002」「003」といったデータが出力され、連結列を「2」にした場合、商品カテゴリの名称「パソコン」「スマートフォン」「タブレット」などが出力されます。
また、選択中のデータはテキストボックスと同じように取得することができます。
Debug.Print [cmb商品カテゴリ].value
ウィザードを使ってリストを作成
上記のように、一つ一つのプロパティを自分で設定して作成することも可能ですが、単純なものであれば、ウィザードを使ってもっと簡単に作成することができます。
最初はウィザードを使って作成し、細かい部分のプロパティを後で調整する、という方法がいいと思います。