ich habe in einem programm eine combobox in verwendung und möchte jetzt gerne dass wenn der anfängt in der combobox zu schreiben automatisch nach einträgen sucht die passen und dann diesen in die combobox schreibt
Hi Schorsch !
Das ist genau das was Du brauchst !
Private Sub Combo1_Change()
Dim li_idx As Integer
Dim li_SelStart As Integer
prb_KatGef = False
With Me.Combo1
li_SelStart = .SelStart
For li_idx = 0 To .ListCount - 1
If UCase(Left(.List(li_idx), li_SelStart)) = UCase(Left(.Text, li_SelStart)) Then
.ListIndex = li_idx
Me.txtKatNr.Text = .ItemData(li_idx)
.SelStart = li_SelStart
.SelLength = Len(.Text) - li_SelStart
prb_KatGef = True
Exit For
End If
Next
End With
End Sub
Private Sub Combo1_Click()
prb_KatGef = True
Me.txtKatNr.Text = Me.Combo1.ItemData(Me.Combo1.ListIndex)
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
With Me.Combo1
If KeyAscii = vbKeyBack And .SelStart > 0 Then 'BackSpace
.SelStart = .SelStart - 1
.SelLength = .SelLength + 1
End If
End With
End Sub
Ciao
Mario
ich habe in einem programm eine combobox in verwendung und
möchte jetzt gerne dass wenn der anfängt in der combobox zu
schreiben automatisch nach einträgen sucht die passen und dann
diesen in die combobox schreibt
Der vorgeschlagene Code funktioniert zwar ist aber bei einer Menge Einträgen eher langsam. Ich empfehle mal ein Durchlesen des „SendMessageApi“ , dass Parameter bietet innerhalb einer Combobox oder auch einer Listbox übers API suchen zu lassen und direkt den entsprechenden Listindexeintrag zurückliefert.
Grüsse, Stephan