プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ、よろしくお願いします。
WinXP VB6.0 oracle10g使用
comboboxとTextBoxと連動したいと思っています。
担当者のデータ
コード、名前 
1   山田 
2   佐藤
3   足立
55   安藤
999 不明
とあるのですが、TextBoxに"3"と入力したら
(Text1_LostFocusイベントでやってみました)
comboBoxは"安藤"と出るように(選択状態)したいと思っています。
ListIndexでやってみましたが、コードが必ずしも順番に入っている状態ではないので困っています。
(DBからよんでくる時、FORM_LOADイベントでも実行したいです。)
よろしくお願いします。

A 回答 (3件)

#2です。


言っている意味がわかりました。
ComboBoxでは0からの連続した数値でないと
ListIndexにできないみたいですね。

そこで55をTextBoxに入力したらIndexは3を
出力するように配列を設定しました。
配列には予め全部4,不明が出るようにして置き

あとからデータがあるものは有効な数値に書き換えます。

Dim Code(999) As Integer

Private Sub Form_Load()

Dim i As Integer

Combo1.AddItem "山田", 0
Combo1.AddItem "佐藤", 1
Combo1.AddItem "足立", 2
Combo1.AddItem "安藤", 3
Combo1.AddItem "不明", 4

For i = 0 To 999
Code(i) = 4
Next i

Code(1) = 0
Code(2) = 1
Code(3) = 2
Code(55) = 3
Code(999) = 4

End Sub

Private Sub Text1_Change()
If IsNumeric(Text1.Text) Then
Combo1.ListIndex = Code(Text1.Text)

End If

End Sub
    • good
    • 0

その1


Private Sub Form_Load()
Combo1.AddItem "山田", 0
Combo1.AddItem "佐藤", 1
Combo1.AddItem "足立", 2
Combo1.AddItem "安藤", 3
Combo1.AddItem "不明", 4

End Sub

Private Sub Text1_Change()
If IsNumeric(Text1.Text) Then
Combo1.ListIndex = Text1.Text
End If

End Sub

その2
Combo1のItemDataプロパティウィンドウ内で
1
2
3
というふうに連続した数値を入力する。(改行はCtrl+Enter)

Private Sub Form_Load()
Combo1.AddItem "山田"
Combo1.AddItem "佐藤"
Combo1.AddItem "足立"
Combo1.AddItem "安藤"
Combo1.AddItem "不明"

End Sub

Private Sub Text1_Change()
If IsNumeric(Text1.Text) Then
Combo1.ListIndex = Text1.Text
End If

End Sub

参考URL:http://support.microsoft.com/default.aspx?scid=k …
    • good
    • 0

TextBoxのChangeイベントで何が入力されたか判定して、空白ならcomboBoxを空にして、それ以外ならSelect文で判定してあげれば簡単なものは作成できると思います。


それがkazumanさんの望み通りのものかどうかはわかりません。
Form_Loadで動かすならForm_Loadイベント中にText_Changeイベントを呼んであげればいいんでは?

この回答への補足

早速回答ありがとうございます。
>Select文で判定してあげれば簡単なものは作成できると思います。
Comboboxが入力できないように、ドロップダウンリストにしてある為に、表示することができません。
AddItemで追加しても表示は空白のままですし…。

補足日時:2006/01/31 18:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!