Access交流中心

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

模糊查询

chinasa  发表于:2015-09-08 17:36:59  
复制

我现有表TB1,其中两个字段,分别为 姓名   城市  获奖,具体如下:

姓名   城市  获奖

张三  宁波   三等奖

李四  大连

王五   北京  二等奖

李六   重庆   三等奖

张七   大连   二等奖

 

我现在通过窗体进行模糊查询,窗体的数据源为“查询1”,“查询1”的限定条件分别设置为:

城市:like "*" & forms!窗体1!cs  & "*"

获奖:like "*" & forms!窗体1!HJ  & "*"

 

现在遇到的问题是:当我查询城市为“大连”,其它条件不限制,李四因为获奖为空白,而无法检索到该条记录。

我尝试把获奖的限定条件更改为like "*" & forms!窗体1!HJ  & "*" OR IS NULL

但又遇到我限定获奖条件为二等奖时,李四没获奖也检索出来了。

 

Top
丘山 发表于:2015-09-08 22:56:35

获奖:like "*" & forms!窗体1!HJ  & "*"

改为

获奖:like "*" & forms!窗体1!HJ  & "*" or nz(forms!窗体1!HJ ,0)=0

试试

 



chinasa 发表于:2015-09-09 13:39:29

Like "*" & [forms]![open]![hd] & "*" Or nz([forms]![open]![hd],0)="0"

 

运行的结果是与Like "*" & [forms]![open]![hd] & "*"一样,即:如果该字段我空,则此条记录未显示。

说明:其中的 =0,我查询条件中输入后,自动变为="0"



杜超 发表于:2015-09-09 16:43:47
经典的刘小军主子窗体查询示例详细教程\多条件查询[Access软件网]
http://www.accessoft.com/article-show.asp?id=5580

chinasa 发表于:2015-09-09 17:19:17

感谢管理严回复。

在“常用窗体查询1.mdb”里找到类似查询,但经测试不成功,因为两者不同,我这里需要查询数据表中某字段为空时的记录,而示例里的是当输入条件为空时:

示例:Like IIf(IsNull([forms]![open]![hd]),'*' ,'*' & [forms]![open]![hd] & '*')

我尝试更改为:Like IIf(IsNull([forms]![open]![hd]),Like '*' Or Is Null,'*' & [forms]![open]![hd] & '*'),但明显语法错误,有两个LIKE了。



蒋元根 发表于:2015-09-09 19:41:32

经典的刘小军主子窗体查询示例修改,供参考。

点击下载此附件



丘山 发表于:2015-09-09 23:47:55

Like "*" & [forms]![open]![hd] & "*" Or nz([forms]![open]![hd],0)="0"

改成试试

Like "*" & [forms]![open]![hd] & "*" Or nz([forms]![open]![hd],"0")="0"

0 要加引号里外都加

要不直接改成字符串

 

Like "*" & [forms]![open]![hd] & "*" Or nz([forms]![open]![hd],"abc")="abc"

 



chinasa 发表于:2015-09-10 09:59:46
非常感谢两位老师的指点,蒋老师的方法通用性很强,丘山老师的方法与我现有操作很接近。再次感谢!

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