Ich baue eine Suche, während Sie Kombinationsfeld eintippen. Die Suche und Aktualisierung verwendet das Änderungsereignis.Auswahl des Kombinationsfeldes verhindern, um Text zu ändern
Private Sub ItemName_Change()
Dim strText, strFind, strSQL, strSelect, strWhere, strOrderBy As String
strText = Me.ItemName.Text
strSelect = "SELECT DISTINCT [ItemName] FROM ItemsMaster "
strWhere = "WHERE type = 'Sold Goods' "
strOrderBy = " ORDER BY [ItemName];"
If (Len(Trim(strText)) > 0) Then
'Show the list with only those items containing the types letters
strFind = "ItemsMaster.ItemName Like '"
For i = 1 To Len(Trim(strText))
If (Right(strFind, 1) = "*") Then
strFind = Left(strFind, Len(strFind) - 1)
End If
strFind = strFind & "*" & Mid(strText, i, 1) & "*"
Next
strFind = strFind & "'"
strSQL = strSelect & strWhere & "AND " & strFind & strOrderBy
Me.ItemName.RowSource = strSQL
Else
strSQL = strSelect & strWhere & strOrderBy
Me.ItemName.RowSource = strSQL
End If
Me.ItemName.Dropdown
End Sub
Aber Wenn ich versuche, die Elemente aus der Dropdown-Liste auszuwählen, aktualisiert er den Text und löst das Änderungsereignis. Gibt es eine Möglichkeit, wie der Benutzer durch die Liste ohne Kombinationsfeld scrollen kann, um den Text im Textfeld zu ändern?
Haben Sie versucht, das durch Drücken von Tasten statt durch das Änderungsereignis der Combobox auszuführen? –