这样的模糊查询如何实现

fooltutu 2008-05-21 03:17:47
有一个EXCEL表中一个字段是作者的姓名,作者可能是单一作者,也可能是多个作者.如果查询时,用户提供了一个人名,要到表里查询此人名.如果这个人名是多个作者中的一个,此条记录也要滤出来.我要怎么实现呢?用like好象不行

我是在EXCEL的VBA中写代码,不是SQL查询
...全文
97 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunqingyi007 2008-05-22
  • 打赏
  • 举报
回复
下面是一段模糊查询代码 在文本框1中输入,同时在mshflexgrid中显示相关的数据,我的数据库是车辆方面的,
你自己动动脑改一下就可以用了
Private Sub Text1_change()

Dim 文件地址 As String, 查询语句 As String
Dim 连接对象 As Object, 数据对象 As Object
If Text1.Text = "" Then
MsgBox "请输入要查找的产品型号", vbOKOnly + vbInformation, "查询"
Text1.SetFocus
Exit Sub
End If

文件地址 = "D:\车俩个查询系统2003.mdb"

'以下为模糊查询语句
Dim 临时字符 As String

查询语句 = "Select * From 车辆查询系统 Where"

For X = 1 To Len(Text1.Text)
临时字符 = Left(Text1.Text, X)
临时字符 = Right(临时字符, 1)
If X = 1 Then
查询语句 = 查询语句 & " 产品型号 LIKE '%" & 临时字符 & "%'"
Else
查询语句 = 查询语句 & " AND 产品型号 LIKE '%" & 临时字符 & "%'"
End If
Next X
'-----------------------------------------------------------------

Set 连接对象 = CreateObject("ADODB.Connection")
Set 数据对象 = CreateObject("ADODB.Recordset")

'-------------------------------------------------------------------
连接对象.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\车辆查询系统2003.mdb;Persist Security Info=False"
数据对象.Open 查询语句, 连接对象, 3
If 数据对象.RecordCount > 0 Then
'*************************************
Set MSHFlexGrid1.DataSource = 数据对象
'**************************************
MSHFlexGrid1.ColWidth(1) = 4000
MSHFlexGrid1.ColWidth(2) = 2000

Else
MsgBox "请输入要查找的产品型号", vbOKOnly + vbInformation, "查询"
Text1.SetFocus
Exit Sub
End If
数据对象.Close
连接对象.Close
End Sub
normandj 2008-05-22
  • 打赏
  • 举报
回复
使用 instr 函数可以满足你的要求
  • 打赏
  • 举报
回复
'like 肯定可以的 要注意 "*" 最好加在like后面,或者你用instr函数
dim a as string,b as string
a="abcdef"
b="cde"
msgbox instr(a,b)>0
fooltutu 2008-05-22
  • 打赏
  • 举报
回复
谢谢大家,用INSTR解决了.
fooltutu 2008-05-21
  • 打赏
  • 举报
回复
我用过LIKE了,好象不行.还有别的办法吗?
  • 打赏
  • 举报
回复
dim a as string,b as string
a="abcdef"
b="cde"
msgbox a like "*" & b & "*"
'结果是true

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧