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

combo1中连接Access中表B的用户(001,002,003,010,100)希望能通过在combo中输入,然后下拉菜单显示以输入的为开头的用户,例如输入“0”时显... combo1中连接Access中表B的用户(001,002,003,010,100)
希望能通过在combo中输入,然后下拉菜单显示以输入的为开头的用户,例如输入“0”时显示“001 002 003 010”的选项,再输入一个“1”时显示“010”选项,如何实现???最好能详细点。。。
展开
 我来答
lcq627
2009-04-17 · 超过29用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:0
展开全部
先连接数据库的表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
百度网友5e96539eb
2009-04-17 · TA获得超过272个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:178万
展开全部
这个问题用VB来实现表面看来很容易,其实并不是那样的。
模糊查询容易,但难点在于动态改变combo1的下拉菜单。
如果在Change事件下直接执行Combo1.Clear ,结果只能是什么也输入不了,更谈不上动态显示下拉菜单了。
--------------------请试试下面的代码------------------
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 10
Combo1.AddItem i
Next i
End Sub
Private Sub Combo1_Change()
Combo1.RemoveItem (0)
Me.Refresh '这里主要是刷新下拉菜单,可能因父容器不同也刷新对象不同
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4af5642
2009-04-17 · TA获得超过1177个赞
知道小有建树答主
回答量:920
采纳率:0%
帮助的人:572万
展开全部
Private Sub Combo1_Change()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("数据库的路径")
Set rs = db.OpenRecordset("select * from 表名 where 用户名的字段 like '" & Trim(Combo1.Text) & "%'")
Combo1.Clear
Do Until rs.EOF
Combo1.AddItem rs("用户名的字段")
rs.MoveNext
Loop
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
binuisoft
2009-04-17 · TA获得超过1449个赞
知道小有建树答主
回答量:385
采纳率:0%
帮助的人:421万
展开全部
这个很容易,只要Combo1_Change 这个事件中,使用模糊查询动态改变下拉列表的内容就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乌水风8O
2009-04-17 · TA获得超过142个赞
知道答主
回答量:276
采纳率:0%
帮助的人:0
展开全部
应该是用ajax实现吧
即时查询数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冠磊029
2009-04-17 · 贡献了超过213个回答
知道答主
回答量:213
采纳率:0%
帮助的人:37万
展开全部
cv
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式