#359 コンボの2列目をテキストボックスに表示する方法(VBA版) フォーム、VBA

コンボボックスのドロップダウンリストよりある項目を選択したとき、その項目の2列目や3列目の値を別のテキストボックスに代入して表示させる方法です。

ここでは、コンボボックスの"更新後処理"イベントプロシージャを利用して、コンボボックスで選択された項目の2列目や3列目のデータを取得、それらをテキストボックスに代入します。


作成手順
  1. 下図のようなフォームを作成します。
    フォームのデザインビュー
    • 今回は、「得意先名」と「担当者名」の2つのテキストボックスは参照専用とし、非連結(コントロールソースなし)とします。
    • コンボボックスの名前は"得意先コード"、2つのテキストボックスの名前はそれぞれ"得意先名"、"担当者名"とします。

  2. コンボボックスの値集合ソースとして「得意先」テーブルを指定するとともに、その2列目・3列目が「得意先名」と「担当者名」となるよう、"列数"プロパティ等を設定します。
    コンボボックスのプロパティ設定

  3. 続いて、コンボボックスの更新後処理イベントプロシージャに次のようなコードを記述します。
    Private Sub 得意先コード_AfterUpdate()
    '得意先コードコンボボックスの更新後処理

      With Me!得意先コード
        'コンボボックスの2列目を得意先名テキストボックスに代入
        Me!得意先名 = .Column(1)
        'コンボボックスの3列目を得意先名テキストボックスに代入
        Me!担当者名 = .Column(2)
      End With

    End Sub
    ここで「Me!得意先コード.Column(1)」や「Me!得意先コード.Column(2)」は、コンボボックスで選択された項目の2列目および3列目の内容を取得するものです。カッコ内の数字は1列目をゼロとして指定します。

実行例
  1. コンボボックスをドロップダウンして任意の項目を選択します。
    コンボボックスより項目を選択

  2. それによってコンボボックスの2列目・3列目がそれぞれのテキストボックスに表示されます。
    実行結果
※2つのテキストボックスのコントロールソースを、フォームのレコードソース上のフィールドと連結しておくこともできます。そのようにした場合、コンボボックスで項目を選択したあと、コンボボックスの値集合ソースのデータとは異なる値に書き換えて、それをテーブルに保存させることができます。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved