我有一个combox框,它的下拉框中的数据来自一个很大的员工表,如果只让它选择很麻烦,我想在输入一个数据的同时,它的下拉框中的数据能跟着变,例如:我输入"张"时,combox下拉框中只显示姓张的员工,请各位大侠帮帮忙

解决方案 »

  1.   

    private sub combox1_change()
     dim rs as adodb.recordset
     ...
     combox1.clear
     rs.open "select * from employeetable where employeename like '" & combox1.text & "'"
     do while not rs.eof
      combox.additem rs.fields(x).value
      rs.next
     loop
     rs.close
     set rs=nothing
     ...
    end sub
      

  2.   


     rs.open "select * from employeetable where employeename like '" & combox1.text & "%'"
      

  3.   

    Employee:    name   code    张三    ZS
        张二    ZE
        张一    ZY
        李四    LS
        王五    WW
    如何在combobox中动态显示跟输入的code相近的name,并且输入的时候下拉框自动展开
      

  4.   

    sendmessage:try:
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Sub Combo1_Change()combox1.Clear
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.RecordsetDim iStart As Integer
    Dim sString As String
    Static iLeftOff As Integer'cnn.Open ........ ' add your connectionstring
     rst.Open "select DISTINCT [NAME] from employee where [NAME] like '" & Trim(combo1.Text) & "'%", cnn, 3, 3
     Do While Not rst.EOF
      combox1.AddItem rst.fields(0).Value
     rst.MoveNext
     Loop
     rst.Close
     Set rst = Nothing
    Set cnn = Nothing 
    iStart = 1
    iStart = combo1.SelStart
     
    If iLeftOff <> 0 Then combo1.SelStart = iLeftOff: iStart = iLeftOffsString = CStr(Left(combo1.Text, iStart))
    combo1.ListIndex = SendMessage(combo1.hwnd, &H14C, -1, ByVal CStr(Left(combo1.Text, iStart)))
     
    If combo1.ListIndex = -1 Then iLeftOff = Len(sString): combo1.Text = sString
    If combo1.Text <> "" Then SendMessage combo1.hwnd, &H14F, True, 0combo1.SelStart = iStart
    combo1.SelLength = 0
    iLeftOff = 0End Sub
      

  5.   

    试了一下,上面的方法好象不行1.combobox中只能输入一个字符
    2.并未检测出对应的符合条件的记录
      

  6.   

    看楼主的要求
    最简单的方法是将combobox绑定到一个记录集的员工姓名字段上。
    blnInFind=false
    sub Combo1_change()
       if blnInFind=true then exit sub
       blnInFind=true
       rs.filter=""
       rs.filter="员工姓名 like '%" combobox.text & "' " 
    '刷新combo,这个很久没有用你试试
       combo1.refresh    
       blnInfind=false      
    end sub
      

  7.   

    什么代码都不要写的。只要用企业版sp5的2.0(combo)控件就可以了。自带这一功能的。我用过很多次。