コンボボックスの2列目以降の値を別のテキストボックスに表示する

 コンボボックスで値を選択している時に複数の列の内容を表示させることができますが、選択後に表示させることができるのは1列だけ、つまり1つの値だけです。これだとコードしか表示できないため誰のことかわからないとか、氏名しか表示できないため同姓同名の人物を取り違えるという事態が起こる可能性があります。
 そこで対策の一つとして、2列目以降の値(正確には任意の列の値)を別のコントロールに転記して表示する方法を示します。

f:id:accs2014:20161218174336p:plain:right:w400

 右の例ではコンボボックスの選択中に4つの列の値を表示させていますが…


f:id:accs2014:20161218174335p:plain:right:w400

 選択が終わると残るのは1つだけです。
 列幅や連結列プロパティの設定により、実際に取得している値と表示する値を異なるものとすることはできますが、取得する値、表示する値はいずれも1つずつであることに変わりはなく、表示させたいだけの情報が表示できないということが起こります。


f:id:accs2014:20161218174334p:plain:right:w400

 そこで表示用のテキストボックスを配置し、コントロールソースを以下のようにします。
 なお、コンボボックスの名前は「駅コードcmb」です。


コンボボックスの2列目の値を表示させようとするテキストボックス

=[駅コードcmb].[Column](1)

コンボボックスの3列目の値を表示させようとするテキストボックス

=[駅コードcmb].[Column](2)

コンボボックスの4列目の値を表示させようとするテキストボックス

=[駅コードcmb].[Column](3)

 カッコで列番号を指定しますが、列番号は0番から始まるため2列目を指定する場合は「(1)」となる点にご注意ください。


f:id:accs2014:20161218174333p:plain:right:w400

 改めてコンボボックスで値を選択すると…


f:id:accs2014:20161218174332p:plain:right:w400

 指定した列の値が表示されます。もちろん選択しなおせばそのたびに書き換わります。