在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”选项,如何实现???最好能详细点。。。 展开
希望能通过在combo中输入,然后下拉菜单显示以输入的为开头的用户,例如输入“0”时显示“001 002 003 010”的选项,再输入一个“1”时显示“010”选项,如何实现???最好能详细点。。。 展开
6个回答
展开全部
先连接数据库的表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
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 ,结果只能是什么也输入不了,更谈不上动态显示下拉菜单了。
--------------------请试试下面的代码------------------
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
模糊查询容易,但难点在于动态改变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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个很容易,只要Combo1_Change 这个事件中,使用模糊查询动态改变下拉列表的内容就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是用ajax实现吧
即时查询数据库
即时查询数据库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cv
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询