Access

コンボボックスで複数列表示させる(Access)(サンプル付き)

2019年9月14日

在庫確認システムを作るためにAccessを始めた当初、コンボボックスの複数列表示の方法がわかりませんでした。

列数を変更

コンボボックスのプロパティシートにて列数を2列にします。列幅も1列目、2列めのサイズに応じて書き換えます。

(サンプルはコントロール名がコンボ0、コンボ3、コンボ5になっています)

値集合ソース

このコンボボックスに表示させるテーブル(T_社員)は下記の通りです。

IDオートナンバー型
社員コード数値型
社員テキスト型
所属テキスト型

このテーブルをコンボボックスのプロパティシートに反映させます。値集合ソースは
1列(社員コードのみ)の場合

SELECT T_社員.社員コード FROM T_社員 ORDER BY T_社員.社員コード; 

2列(社員コードと社員)の場合

SELECT T_社員.社員コード, T_社員.社員 FROM T_社員 ORDER BY T_社員.社員コード; 

3列(社員コードと社員と所属)の場合

SELECT T_社員.社員コード, T_社員.社員, T_社員.所属 FROM T_社員 ORDER BY T_社員.社員コード; 

と記載します。ORDER BY 社員.社員コードORDER BY 社員.社員とすれば社員名の昇順に変更されます。

コンボボックスウィザードを使用した場合の注意

コンボボックスウィザードにてテーブルやクエリからフィールドを選択して同様に作り表示することができます。

しかし、コンボボックスの中身(.value)が「ID」になっていることがありませんか?ウィザードの時に「ID」を除外した筈ですが・・・

コンボボックスのプロパティシートから「値集合ソース」を見てみると、

SELECT [T_社員].[ID], [T_社員].[社員コード], [T_社員].[社員] FROM [T_社員] ORDER BY [社員コード];

さらに

「列数」が「3」になっていて、列幅が「0cm;2.54cm;2.54cm」になっています。

「値集合ソース」から「[T_社員].[ID],」を削除して⇩

SELECT [T_社員].[社員コード], [T_社員].[社員] FROM [T_社員] ORDER BY [社員コード];

とし、列幅を「2」に、列幅から「0cm;」を消せばコンボボックスの値に「ID」ではない値(上記例では社員コード)が入ります。

メモ

ORDER BY [社員コード]は社員コードを昇順で表示するという意味ですのでなくても構いません

サンプルダウンロード

DOWNLOAD 

コンボボックスで複数列表示させる(Access)(サンプル付き)

-Access
-, , , , , ,