Office中国论坛/Access中国论坛

标题: [求助]未解决,以前的贴,精确查询和模糊查询 [打印本页]

作者: sbsfhgl    时间: 2007-6-23 04:36
标题: [求助]未解决,以前的贴,精确查询和模糊查询
这个是模糊查询的代码:Like IIf(IsNull([Forms]![产品进程查询]![型号]),'*','*' & [Forms]![产品进程查询]![型号] & '*')

如果实现精确查询可采用:[Forms]![产品进程查询]![型号]

但有个问题:

必须 “产品进程查询]![型号]”得有内容,不然是不会显示任何东西的,

请问:如何做到将以上代码改为, “产品进程查询]![型号]”得有内容则实现精确查询,没有则忽略。。。。



这个问题以前的,现在还没有解决呀,顶一下

一点通兄的说法:

这个问题也是初学者共同的问题,往往当字段中没有输入数据,查询时除了模糊查询,精确查询就找不到这些数据了,因为当没有输入数据时是null数据,也就是没有意义的数据,如何将没有意义的数据变为有意义的数据呢?其实很简单,只要将原字段加上一个""就可以,如:

型号:[表名].[型号] & ""

是不是很神奇呢?数据马上就可以找到了,还不早点试下?



型号:[表名].[型号] & ""这个好像不太明白,光把字段改了,那查询条件呢?



[ 本帖最后由 sbsfhgl 于 2007-12-30 13:17 编辑 ]
作者: 一点通    时间: 2007-6-23 05:47
这个问题也是初学者共同的问题,往往当字段中没有输入数据,查询时除了模糊查询,精确查询就找不到这些数据了,因为当没有输入数据时是null数据,也就是没有意义的数据,如何将没有意义的数据变为有意义的数据呢?其实很简单,只要将原字段加上一个""就可以,如:

型号:[表名].[型号] & ""

是不是很神奇呢?数据马上就可以找到了,还不早点试下?
作者: LHT7777    时间: 2007-6-23 06:33
以下是引用一点通在2007-6-22 21:47:00的发言:


这个问题也是初学者共同的问题,往往当字段中没有输入数据,查询时除了模糊查询,精确查询就找不到这些数据了,因为当没有输入数据时是null数据,也就是没有意义的数据,如何将没有意义的数据变为有意义的数据呢?其实很简单,只要将原字段加上一个""就可以,如:

型号:[表名].[型号] & ""

是不是很神奇呢?数据马上就可以找到了,还不早点试下?

大哥,好像不行啊!
作者: 一点通    时间: 2007-6-23 06:53
例子
作者: poly    时间: 2007-6-23 11:36
神奇~~~
作者: LHT7777    时间: 2007-6-23 16:25
以下是引用一点通在2007-6-22 22:53:00的发言:
例子

应该是我没做对,请老师指点,谢谢!

我的实例中,当品名组合框中没有数据时,就查询不到结果!

[attach]25077[/attach]

作者: sbsfhgl    时间: 2007-6-23 18:02
试下哈哈
作者: sbsfhgl    时间: 2007-6-23 20:13
好像也不得行,我是加在查询字段上面的,对不对?
作者: tz-chf    时间: 2007-6-23 20:36
Like IIf(IsNull([Forms]![产品进程查询]![型号]),[型号],'*' & [Forms]![产品进程查询]![型号] & '*')
作者: sbsfhgl    时间: 2007-6-24 02:12
好像还是不得行,达不到理想效果,不能实现精确还是模糊查询
作者: tz-chf    时间: 2007-6-24 02:26
这和精确模糊无关,加*就是模糊。
作者: wuaza    时间: 2007-6-24 02:28
把test查询改为这样试试:(试着加入一个品名为“毛巾被”,看看在筛选“毛巾”时“毛巾被”有没有被查出来。)

SELECT 基础表.货品编号, 基础表.品名 & "" AS 品名, 基础表.单位, 基础表.规格, 基础表.价格, 基础表.数量, 基础表.金额
FROM 基础表
WHERE [品名] Like nz(Forms!main!Combo0,"*");


[此贴子已经被作者于2007-6-23 18:32:34编辑过]


作者: sbsfhgl    时间: 2007-6-24 17:16
我的问题还没解决呀,比如我在型号里输入CD110 ,它查询出来的不仅有CD110还有CD110X,谁帮我改下嘛
作者: sbsfhgl    时间: 2007-6-24 17:17
以下是引用tz-chf在2007-6-23 12:36:00的发言:
Like IIf(IsNull([Forms]![产品进程查询]![型号]),[型号],'*' & [Forms]![产品进程查询]![型号] & '*')

这个也不得行
作者: sbsfhgl    时间: 2007-7-1 21:15
如何解决呀,我现在还不知道呀。有没有例子,烦请提供一下,有谢
作者: goto2008    时间: 2007-7-4 17:17
帮你顶一下哦
作者: sbsfhgl    时间: 2007-12-30 13:12
这个问题以前的,现在还没有解决呀,顶一下
一点通兄的说法:
这个问题也是初学者共同的问题,往往当字段中没有输入数据,查询时除了模糊查询,精确查询就找不到这些数据了,因为当没有输入数据时是null数据,也就是没有意义的数据,如何将没有意义的数据变为有意义的数据呢?其实很简单,只要将原字段加上一个""就可以,如:
型号:[表名].[型号] & ""
是不是很神奇呢?数据马上就可以找到了,还不早点试下?

型号:[表名].[型号] & ""这个好像不太明白,光把字段改了,那查询条件呢?

[ 本帖最后由 sbsfhgl 于 2007-12-30 13:14 编辑 ]
作者: t小宝    时间: 2007-12-30 13:57
这个是模糊查询的代码:Like IIf(IsNull([Forms]![产品进程查询]![型号]),'*','*' & [Forms]![产品进程查询]![型号] & '*')
如果实现精确查询可采用:[Forms]![产品进程查询]![型号]
但有个问题:
必须 “产品进程查询]![型号]”得有内容,不然是不会显示任何东西的,
请问:如何做到将以上代码改为, “产品进程查询]![型号]”得有内容则实现精确查询,没有则忽略。。。。
-------------------------------------------------------------------------------------------------------------------------------------------------

这一句可以实现:
Like IIf(IsNull([Forms]![产品进程查询]![型号]),'*',[Forms]![产品进程查询]![型号])
作者: sbsfhgl    时间: 2007-12-30 16:57
原帖由 t小宝 于 2007-12-30 13:57 发表
这个是模糊查询的代码:Like IIf(IsNull([Forms]![产品进程查询]![型号]),'*','*' & [Forms]![产品进程查询]![型号] & '*')
如果实现精确查询可采用:[Forms]![产品进程查询]![型号]
但有个问题:
必须 “产品进程 ...


我知道这个可以实现,我的想法是:
当这个控件为空时,则不需要加任何条件,忽略这个条件(不采用模糊方式like);
如果这个控件有值时,就来源于这个控件
作者: sbsfhgl    时间: 2008-1-2 08:49
t小宝 哪个说明也是模糊查询
作者: t小宝    时间: 2008-1-2 11:14
标题: 回复 19# 的帖子
Like IIf(IsNull([Forms]![产品进程查询]![型号]),'*',[Forms]![产品进程查询]![型号])
这一句是放在查询的条件里面,如果[Forms]![产品进程查询]![型号]这个控件有值,条件字段就等于这个控件的值,如果没有值,就会返回所有记录。

而你说的:
“当这个控件为空时,则不需要加任何条件,忽略这个条件(不采用模糊方式like);”
是什么意思?是不是要把Like......这句去掉,如果是这样,就要在窗体上用代码来实现。
作者: sbsfhgl    时间: 2008-1-2 15:52
就是要把Like......这句去掉,那用代码吧。。。。不知道一点通说的哪个是怎么回事

这个问题也是初学者共同的问题,往往当字段中没有输入数据,查询时除了模糊查询,精确查询就找不到这些数据了,因为当没有输入数据时是null数据,也就是没有意义的数据,如何将没有意义的数据变为有意义的数据呢?其实很简单,只要将原字段加上一个""就可以,如:
型号:[表名].[型号] & ""
是不是很神奇呢?数据马上就可以找到了,还不早点试下?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3