在VB+Access中实现可输入的下拉菜单

来源:百度知道 编辑:UC知道 时间:2024/06/29 21:21:09
combo1中连接Access中表B的用户(001,002,003,010,100)
希望能通过在combo中输入,然后下拉菜单显示以输入的为开头的用户,例如输入“0”时显示“001 002 003 010”的选项,再输入一个“1”时显示“010”选项,如何实现???最好能详细点。。。

先连接数据库的表B
Private Sub Form_Load()
dim cnn as ADODB.Connection
dim rst as ADODB.Recordset
dim cmd as ADODB.Command
dim a as string
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
Set cmd = New ADODB.Command

strcnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=****.mdb;Persist Security Info=False"
cnn.Open strcnn
cmd.ActiveConnection = cnn

a=str(combo1.text)
gstr = "select * from B where user_id like "+a+"%"
cmd.CommandText = gstr
Set rst = cmd.Execute
rst.MoveFirst
Do While rst.EOF = False
Combo1.AddItem rst!user_id
rst.MoveNext
Loop
cnn.close

这个问题用VB来实现表面看来很容易,其实并不是那样的。
模糊查询容易,但难点在于动态改变combo1的下拉菜单。
如果在Change事件下直接执行Combo1.Clear ,结果只能是什么也输入不了,更谈不上动态显示下拉菜单了。
--------------------请试试下面的代码------------------