设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1821|回复: 3
打印 上一主题 下一主题

[查询] 求教:另一类实现单字段多条件模糊查询

[复制链接]
跳转到指定楼层
1#
发表于 2009-2-7 00:19:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天看到一个单字段多条件模糊查询,就想到是不是能实现这样的?结果试了下,没实现,只能问问网上的大侠们了。                        
实现要求:选择欲查询字段名称(也可不选择,直接在代码中指定),然后在文本框输入多个查询条件(条件不分顺序,条件之间用空格分隔),即可得到所有的查询结果.如输入“111 222 333”则可同时得到111 222 333这三组数据。                                            
同样要取消查询,只要把文本框的字符清空即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-2-7 00:32:51 | 只看该作者
其实如果你换个术语的话,可能自己就能找到答案了。这不是"模糊查询",而是 "数值是否等于指定列表中几个数值中的一个。" SQL中有这个运算符 IN.

以下摘自 Microsoft Access 2003 Help
In 运算符

判断表达式的数值是否等于指定列表中几个数值中的一个。

语法
expr [Not] In(value1, value2, . . .)

例如,可用 In 运算符来判断哪些订单被发往指定的地区集合:
SELECT *
FROM Orders
WHERE ShipRegion In ('Avon','Glos','Som')

============================================
好,现在回到你的问题。

文本框输入多个查询条件(条件不分顺序,条件之间用空格分隔)
输入“111 222 333”则可同时得到111 222 333这三组数据。


设 me.textbox1.value = "111 222 333"
先  s = replace (me.textbox1.value,"  "," ") '把两个空格变成一个空格,防止手工输入的时候多输入一个。 谨慎一点儿的话,就多执行几次,循环到len(s)不再减速少为止。
再 s = replace(s," ",","),把空格替换为, ,此时 s = 111,222,333
之后 sSql = "select * from yourTable where id in ("& s &")"
如果是字符型的话,注意加上''



******************
*  一切皆有可能  *
******************

.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/SList/Access .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
3#
发表于 2009-2-7 09:44:22 | 只看该作者
设 me.textbox1.value = "111 222 333"
先  s = replace (me.textbox1.value,"  "," ") '把两个空格变成一个空格,防止手工输入的时候多输入一个。 谨慎一点儿的话,就多执行几次,循环到len(s)不再减速少为止。
再 s = replace(s," ",","),把空格替换为, ,此时 s = 111,222,333
之后 sSql = "select * from yourTable where id in ("& s &")"
如果是字符型的话,注意加上''
ACMAIN_CHM 发表于 2009-2-7 00:32


我觉得不如用掩码设置文本框,这样可以减少输入错误,代码也简洁一些。
4#
发表于 2009-2-7 10:45:55 | 只看该作者
直接用“,”代替空格更省事
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-21 19:49 , Processed in 0.092699 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表