VB 数据库模糊搜索功能怎么实现? 200
VB数据库模糊搜索功能怎么实现?我有一数据库名称abc.mdb,内有表Blacklist,访问密码是12345有字段:姓名NAME、地址ADDRESS等,对应一个客户的地...
VB 数据库模糊搜索功能怎么实现?
我有一数据库名称 abc.mdb,内有表Blacklist,访问密码是 12345
有字段:姓名 NAME、地址ADDRESS等,对应一个客户的地址信息。
我需要在姓名combo1输入任意关键字后,点击按钮command1能找到与combo1模糊关键词相关的所有客户姓名到DataGrid1中。
以下是我可以实现精确搜索的代码,现在需要修改为模糊搜索。
If Combo1.Text <> "" Then
Dim rs As New adodb.Recordset
sql = "Select * From [Blacklist] where [NAME]='" & Combo1.Text & "'"
Set rs = getrs(sql, "aliexpress")
If Not rs.EOF Then
Dim sd As String
sql = "SELECT NAME AS 姓名, SHOUJIAN AS 收件人, TYPE AS 标记类型, COUNTRY AS 国家, CITY AS 城市, ADDRESS AS 详细地址,PHONE AS 手机 FROM Blacklist where [NAME]='" & Combo1.Text & "' ORDER BY NAME, TYPE"
Me.Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;Jet OLEDB:Database Password=12345;Data source=" & App.Path & "\abc.mdb"
Me.Adodc1.RecordSource = sql
Me.Adodc1.Refresh
Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset
Me.DataGrid1.Refresh
Set rs = Nothing
Else
MsgBox "数据库中无该名称的客户相关信息!"
End If
Else
MsgBox "请输入客户名称,或在下拉列表中选择!"
End If
100悬赏奉上,请笑纳…… 展开
我有一数据库名称 abc.mdb,内有表Blacklist,访问密码是 12345
有字段:姓名 NAME、地址ADDRESS等,对应一个客户的地址信息。
我需要在姓名combo1输入任意关键字后,点击按钮command1能找到与combo1模糊关键词相关的所有客户姓名到DataGrid1中。
以下是我可以实现精确搜索的代码,现在需要修改为模糊搜索。
If Combo1.Text <> "" Then
Dim rs As New adodb.Recordset
sql = "Select * From [Blacklist] where [NAME]='" & Combo1.Text & "'"
Set rs = getrs(sql, "aliexpress")
If Not rs.EOF Then
Dim sd As String
sql = "SELECT NAME AS 姓名, SHOUJIAN AS 收件人, TYPE AS 标记类型, COUNTRY AS 国家, CITY AS 城市, ADDRESS AS 详细地址,PHONE AS 手机 FROM Blacklist where [NAME]='" & Combo1.Text & "' ORDER BY NAME, TYPE"
Me.Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;Jet OLEDB:Database Password=12345;Data source=" & App.Path & "\abc.mdb"
Me.Adodc1.RecordSource = sql
Me.Adodc1.Refresh
Set Me.DataGrid1.DataSource = Me.Adodc1.Recordset
Me.DataGrid1.Refresh
Set rs = Nothing
Else
MsgBox "数据库中无该名称的客户相关信息!"
End If
Else
MsgBox "请输入客户名称,或在下拉列表中选择!"
End If
100悬赏奉上,请笑纳…… 展开
1个回答
展开全部
所谓模糊搜索,就是在 Where 字句中使用 Like 结合通配符号进行匹配,你试试下面这样:
sql = "Select * From [Blacklist] where [NAME] Like '%" & Combo1.Text & "%'"
sql = "Select * From [Blacklist] where [NAME] Like '%" & Combo1.Text & "%'"
更多追问追答
追问
不行,有没其他办法?
追答
你说的怎么不行呢?
比如,你在 Combo1 里是 “张”,那么所有姓张的记录都能显示!
再如,你在 Combo1 里是 “王光”,那么所有姓名中有“王光”的记录都能显示!
你要的是什么效果呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询