你在他输入信息的过程中,实施的匹配已经存在的字串。如果发现前n个字符相同,酒吧后面的填进去。然后设置selection的开始、结束位置。不过在Text框内肯定能用,不知道Combobox有没有selection属性实现起来不难的。

解决方案 »

  1.   

    建议用TextBox+ListBox,在TextBox的change事件中完成添加list的问题。
    注意:要注意TextBox的SelText
      

  2.   

    没有调试,你试试:Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
     Const CB_SHOWDROPDOWN = &H14FPrivate Sub Combo1_Change()
    showlist Combo1, Combo1.Text
    'showlist Combo1,left(Combo1.Text,4)
    End Sub
    Sub showlist(ByVal comb As ComboBox, ByVal x As String)
    comb.Clear
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim sql As String
    cnn.Open "Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=e:\xxxx.mdb"
    rst.Open "select distinct fieldx frm table1 where fieldx like '" & x & "%'", cnn, adOpenKeyset, adLockOptimistic
    rst.MoveFirst
    Do While Not rst.EOF
    comb.AddItem rst.Fields("fieldx").Value
    rst.MoveNext
    Loop
    Set rst = Nothing
    Set cnn = Nothing
    SendMessageLong comb.hwnd, CB_SHOWDROPDOWN, True, 0
    End SubPrivate Sub Combo1_Click()
    SendMessageLong comb.hwnd, CB_SHOWDROPDOWN, False, 0
    End Sub