コンボボックスにフィールドの値と対応付けられた別の値を表示する
Microsoft Accessでコンボボックスにフィールドの値と対応付けられた別の値を表示する手順を紹介します。
概要
こちらの記事の手順により、コンボボックスのドロップダウンリストにコードとコードに対応する名称を表示することができました。
この記事ではさらに、IDやコードを画面に表示せずに、そのコードに対応する名称を直接コンボボックスに表示する方法について紹介します。
事前準備
こちらの記事で紹介した手順でフォーム等を作成します。
データベースの準備
下記のテーブルを作成します。
products テーブル
ID | ProductName | Price | Category | Code | Weight |
1 | もふもふチェア | ¥58,000 | 椅子 | MO-5080 | 3.20 |
2 | ふかふかベッド | ¥89,000 | 寝具 | BD-1010 | 8.40 |
3 | かわいいテーブル | ¥249,800 | テーブル | CU-254 | 4.60 |
4 | きらきらライト | ¥38,500 | 照明 | KL-304 | 1.80 |
5 | ほっそりダイニングチェア | ¥39,800 | 椅子 | HDH-101 | 1.25 |
sal テーブル
ID | code | count | saledate |
1 | MO-5080 | 4 | 2017/02/02 |
2 | CU-254 | 1 | 2017/02/02 |
3 | KL-304 | 1 | 2017/02/02 |
4 | HDH-101 | 1 | 2017/02/07 |
手順
Microsoft Access を起動し、データベースファイルを開きます。左側のナビゲーションウィンドウから変更したいフォームを選択し、フォームのレイアウトビューを表示します。
レイアウトビューでコンボボックスのコントロールを選択します。右側の[プロパティ シート]のウィンドウで[データ]タブを選択します。[値集合ソース]の項目の[...]ボタンをクリックします。
クエリビルダーの画面が表示されます。画面の下部のフィールドの順番を [products.ProductName], [products.Code]の順番にし、最初の項目に名称を設定します。設定後クリービルダーを閉じます。
[値集合ソース]の項目のSQL文が以下となります。~
SELECT products.ProductName, products.Code FROM products;
[プロパティ シート]のウィンドウの[データ]タブの[連結列]の項目がデフォルトでは"1"になっていますが、これを"2"に変更します。コントロールに本来表示される値に対応付けされる値の列を指定します。先の値集合ソースで Code を2列目で出力したクエリに変更したため、この値を"2"に変更します。
値を変更すると、コンボボックスにCodeに対応した名称が表示されます。
レコードを前後に送ると、Codeに対応した名称が表示されることが確認できます。
動作確認
フォームビューに切り替え動作を確認します。
コンボボックスを開くと、下図のドロップダウンリストが表示されます。
こちらの記事で2列表示にしているため、名称とコードの両方が表示されます。
ドロップダウンリストの1列表示
フォームのレイアウトビューを表示します。コンボボックスのコントロールを選択します。
右側の[プロパティ シート]ウィンドウで[書式]タブをクリックして選択します。[列数]の値を"1"に設定します。
動作確認
フォームビューに切り替え動作を確認します。
コンボボックスを開きます。ドロップダウンリストが表示されます。1列の表示になり、Codeがリストには表示されなくなりました。
レコードを前後に移動させると、Codeに対応付けられた商品名が表示されます。
また、ドロップダウンリストを開くとフィールドの値の項目がデフォルトで選択された状態になっています。
著者
iPentecの企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。