解決済みの質問
VBでフォームにデータコンボボックスとテキストボックスを一つづつ作り、データコンボボックスで値を選択し、その値に対する値をテキストボックスに表示させたいんですがどうすればいいでしょうか?
データコンボボックスで選択する元になるテーブルは
ID | 商品
1 | みかん
2 | ばなな
3 | りんご
と、上記のような形のテーブルをもちいています。
例えばデータコンボボックスで「1」を選択した場合テキストボックスに「みかん」と表示させたいです。
投稿日時 - 2003-03-05 14:57:35
データコンボ 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
3人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(4件中 1~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
こんにちは
コンボボックスにはIDのみが表示されるのでしょうか?
そうだとすれば
商品名を配列で持っておいて
IDをインデックスに商品名をとってくればよいのではないでしょうか?
ただしIDが跳んでいれば無駄な領域を使用します。
又、コンボ内の並びが変わらないのであれば選択した項目のインデックスでも
同じ様に配列から取れます。
投稿日時 - 2003-03-05 15:54:14
補足
言葉がたらなかったようで申し訳ありません。
コンボボックスにはIDのみが表示されます。
IDと商品名をそれぞれ配列としてテーブルで持っており
今コンボボックスでIDを選択しlostfocus時にテキストボックスに商品名を表示させたいと思っています。
IDをインデックスに商品名をとってくるというのはどういう方法になるか教えていただければ助かります。
投稿日時 - 2003-03-05 16:03:52
OKWaveのオススメ
おすすめリンク