vb datacombo能不能实现这样的功能,即带查询功能的自动匹配问题:假设datacombo1下拉列表值如下:北京天鸿
北京航路
上海玉详
济南利达
北方通达
....我想实现这样的功能:当我在datacombo1中输入“北”的时候,下拉框自动打开,然后列表中显示只包含以“北”开头的3项,如果我在datacombo1中输入“北京”的时候,下拉框自动打开,然后列表中显示只包含以“北京”开头的2项,然后继续输入“天”字的时候就只有“北京天鸿”这项匹配了,然后整项显示在datacombo1中,就象在ACCESS中一样,这个功能该如何实现?????

解决方案 »

  1.   

    写程序可以做到,把列表放一个数组中,列表清空,用instr查,有就加入列表
      

  2.   

    也可以用数据库的模糊查询功能,在Combo1_Change事件里,如
    sql="select * from 表1 where s1 like '" & commbo1.text & "%'"
      

  3.   

    在网上找了段combo的代码,说可以实现,但是还是有问题:    Dim iStart     As Integer
        Dim sString     As String
        Static iLeftOff     As Integer
        iStart = 1
        iStart = Combo1.SelStart
        
        If iLeftOff <> 0 Then
            Combo1.SelStart = iLeftOff
            iStart = iLeftOff
        End If
        
        sString = CStr(left(Combo1.Text, iStart))
        Combo1.ListIndex = SendMessage(Combo1.hwnd, CB_FINDSTRING, -1, ByVal CStr(left(Combo1.Text, iStart)))
          
        If Combo1.ListIndex = -1 Then
            iLeftOff = Len(sString)
            Combo1.Text = sString
        End If
        
        Combo1.SelStart = iStart
        iLeftOff = 0
        
        Combo1.SelLength = Len(Combo1.Text) - iStart问题:比如我输入了“北方通”的时候,根据列表,然后“北方通达”这项显示出来了,并且“达”字处于选择状态,这时候我如果要想把“达”字删除,但是删除不了,为什么?哪儿需要修改呢?????