VBでコンボボックスとテキストボックスの連係

解決済みの質問

VBでコンボボックスとテキストボックスの連係

VBでフォームにデータコンボボックスとテキストボックスを一つづつ作り、データコンボボックスで値を選択し、その値に対する値をテキストボックスに表示させたいんですがどうすればいいでしょうか?
データコンボボックスで選択する元になるテーブルは
ID | 商品
1 | みかん
2 | ばなな
3 | りんご
と、上記のような形のテーブルをもちいています。
例えばデータコンボボックスで「1」を選択した場合テキストボックスに「みかん」と表示させたいです。

投稿日時 - 2003-03-05 14:57:35

QNo.489996

困ってます

質問者が選んだベストアンサー

データコンボ cmbData
テキスト txtData
として、cmbDataがレコードとリンクしているものと仮定しています。

1.cmbData.BoundColumnが商品名、cmbData.DataFieldがID とする
2.Clickイベントに、以下を設定する

Private Sub cmbData_Click(Area As Integer)
txtData.Text = cmbData.BoundText
End Sub

3.商品名がテキストに表示されます。


P.S
フォーカス取得時も、処理を入れておくと起動時も商品名が表示されるよ。
Private Sub cmbData_GotFocus()
txtData.Text = cmbData.BoundText
End Sub

投稿日時 - 2003-03-06 09:56:12

お礼

度重なる回答ありがとうございます。
上記の方法でなんとかかんとか表示させることはできるようになりました。
後はまた試行錯誤してみます。

投稿日時 - 2003-03-06 12:20:54

ANo.5

3人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(4件中 1~4件目)

ANo.4

#2のものです。

テーブルに格納されているとすると、以下のように格納されているのでしょうか。
IDテーブル(0)="1"
IDテーブル(1)="2"
IDテーブル(2)="3"

商品テーブル(0)="みかん"
商品テーブル(1)="ばなな"
商品テーブル(2)="りんご"


もし、そうなら、コンボボックスのStyleプロパティがドロップダウンリストになっているものとすると、ListIndexが現在表示されているコンボのインデックス番号を返すので、

Private Sub cmbData_LostFocus()
txtData.text = 商品テーブル(cmbData.ListIndex)
End Sub

で表示されます。

投稿日時 - 2003-03-05 17:57:12

補足

ありがとうございます。
テーブルは、一つの「商品」というテーブルにフィールドとして、「ID」と「商品名」が入っています。
また、コンボボックスでなくデータコンボボックスを用いてつくっており、ListIndexなどのプロパティがないのですが、コンボボックでないと無理なのでしょうか?

投稿日時 - 2003-03-05 18:16:03

ANo.3

こんにちは
コンボボックスにはIDのみが表示されるのでしょうか?
そうだとすれば
商品名を配列で持っておいて
IDをインデックスに商品名をとってくればよいのではないでしょうか?
ただしIDが跳んでいれば無駄な領域を使用します。

又、コンボ内の並びが変わらないのであれば選択した項目のインデックスでも
同じ様に配列から取れます。

投稿日時 - 2003-03-05 15:54:14

補足

言葉がたらなかったようで申し訳ありません。
コンボボックスにはIDのみが表示されます。
IDと商品名をそれぞれ配列としてテーブルで持っており
今コンボボックスでIDを選択しlostfocus時にテキストボックスに商品名を表示させたいと思っています。
IDをインデックスに商品名をとってくるというのはどういう方法になるか教えていただければ助かります。

投稿日時 - 2003-03-05 16:03:52

ANo.2

コンボをcmbData、テキストをtxtDataとしています。

AddItemなどで、コンボに
1 みかん
2 ばなな
3 りんご
と設定し、cmbDataのClickメソッドにて、
txtData.Text = Mid(cmbData.List(cmbData.ListIndex), 3)
cmbData.Text = Left(cmbData.List(cmbData.ListIndex), 1)
とすれば、コンボに数字が表示され、テキストに文字が表示されるようになりますよ。

投稿日時 - 2003-03-05 15:48:45

ANo.1

Text1.Text = Combo1.Text
ただ、これだと[1]等も入ってしまいます。left,rightを使って
商品名のみを表示させれば良いのではないでしょうか ?

投稿日時 - 2003-03-05 15:21:01

あわせてチェックしたい
  • VB2008 コンボボックスとテキストボックスの連動について ...
  • VB.NETコンボボックスのセンタリング ...
  • コンボボックスのセンタリング ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら