I have a combo box with a list of Months however the Months are preceded with a single character code i.e
As I type i need to populated the text property of the combo with a match. So if I type "J" then "J (April)" is shown however if I type "Ju" then "M (June)" will be shown.
I have accomplished this with this Function:
Public Function FindItem(sString As String, sColumn, rs As ADODB.Recordset) As String Dim rsClone As ADODB.Recordset Dim i As Integer Set rsClone = rs.Clone If sString = "" Or rsClone.RecordCount = 0 Then Exit Function rsClone.MoveFirst If Len(sString) = 1 Then rsClone.Find "[" & sColumn & "]" & " Like #" & sString & "*#" Else rsClone.Find "[" & sColumn & "]" & " Like #*" & sString & "*#" End If If rsClone.EOF = False And rsClone.BOF = False Then Debug.Print rsClone(sColumn) FindItem= rsClone(sColumn) cboDropDown.ListIndex = rsClone.AbsolutePosition - 1 rsClone.Close Exit Function Else Debug.Print "Not Found" End If FindItem= "" rsClone.Close End Function
The problem I am having is when the cboDropDown.ListIndex is set the whole text is highlighted (see 1st Image) what I need to do is only highlight a portion of the text (see see 2nd Image).
So using the above example, if I type "J" then "J (April)" is found and only "(April)"
should be highlighted "J (April)" this will then allow me to continue to type so if I were to type "Ju" thus "M (June)" will be displayed and "ne)" highlighted.