Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[求助]标题的模糊查询

hope678  发表于:2011-09-28 11:15:31  
复制

附件里有两个窗体,一个主窗体和一个子窗体,想要实现的功能是在主窗体的文本框中输入子窗体搜索标题字段中所包含的内容时,子窗体会对应显示,例如,在文本框中输入“水果忍者下载”子窗体对应显示水果忍者手机版下载和水果忍者电脑版下载两行,再说通俗一些要实现的功能就有点类似中国知网搜索期刊时那个搜索窗口要实现的功能~~输入期刊标题中的部分文字就能找到对应的期刊~~~各位大虾帮帮忙啊~~谢谢点击下载此附件

 

Top
都市侠影 发表于:2011-09-28 11:29:29

子窗体记录源中的WHERE语句中使用LIKE运算符和通配符,具体用法查阅一下即可。



宏鹏 发表于:2011-09-28 13:15:00
窗体1和窗体2两种方式点击下载此附件

新奇 发表于:2011-09-28 18:57:38
Private Sub Command20_Click()
    Me.子窗体.Form.RecordSource = "SELECT 表1.ID, 表1.搜索标题 FROM 表1 WHERE 表1.搜索标题 Like '*" & Me.Text18 & "*'"
    Me.Requery
    Me.Text18 = Null      '清空文本框数据,便于从新输入查询条件,或二次点击【查询】恢复全部数据
End Sub

Lee 发表于:2011-09-28 20:20:35

hope678,你设计的查询窗体大致上没问题,但子窗体的记录源引用错了,不应引用表1而要引用查询1,因你的查询条件是设置在这查询里面。

 



dbaseIIIer 发表于:2011-09-29 00:32:56

不如只用 Filter

 

Private Sub Command20_Click()
    Me.子窗体.Form.Filter = "[搜索标题] Like '*" & Me.Text18 & "*'"

    Me.子窗体.Form.FilterOn = True

    Me.Text18 = Null      '清空文本框数据,便于从新输入查询条件,或二次点击【查询】恢复全部数据
End Sub

至于 Me.Text18 怎样智能分段加通配符, 就自己决定加什么智能就怎么做了!

 

如果想我们帮忙, 就请你提供智能的判断方法了!

我可以提供的就是 用空格作为分隔符, 用 减号作为排除符, 与百度 及 淘宝 一样的!

 

qry=""

m=ltrim( Me.Text18)

sp = instr( m, " ")

do while sp > 0

    if left( m,1)="-" then

        qry=qry & " and NOT( [搜索标题] like '*" & left( m,sp-1) & "*')"

    else

        qry=qry & " and [搜索标题] like '*" & left( m,sp-1) & "*'"

    end if

    m = ltrm( mid( m, sp))

loop

if len( m) > 0 then

    if left( m,1)="-" then

        qry=qry & " and NOT( [搜索标题] like '*" & m & "*')"

    else

        qry=qry & " and [搜索标题] like '*" & m & "*'"

    end if

end if

 

if qry <> "" Then

    Me.子窗体.Form.Filter = mid( qry, 6)

    Me.子窗体.Form.FilterOn = True

Endif

 



hope678 发表于:2011-10-05 22:08:20
dbaseIIIer:我想实现的智能判断方法是不用加分隔符,只要输入标题的前面部分与后面的一部分就能搜索,类似百度

总记录:6篇  页次:1/1 9 1 :