收录日期:2020/10/20 20:18:57 时间:2016/07/19 20:29:25 标签:Access
crykira 于 2010-01-25 16:33:32 编辑 SELECT *
FROM 合同信息
WHERE iif((forms![查询合同信息副本]!txt医院代码) is NULL or trim((forms![查询合同信息副本]!txt合同编号)) ='',1=1,(((合同信息.单位代码) Like "*"& forms![查询合同信息副本]!txt单位代码 & "*")))
And 
((合同信息.合同编号) Like "*" & forms![查询合同信息副本]!txt合同编号 & "*") And
((合同信息.合同名称) Like "*" & forms![查询合同信息副本]!txt合同名称 & "*") And
((合同信息.单位名称) Like "*" & forms![查询合同信息副本]!txt单位名称 & "*") And
((合同信息.合同金额) Like "*" & forms![查询合同信息副本]!txt合同金额 & "*") And
((合同信息.签订日期) Like "*" & forms![查询合同信息副本]!txt签订日期 & "*") And
((合同信息.保修年限) Like "*" & forms![查询合同信息副本]!txt保修年限 & "*") And
((合同信息.验收日期) Like "*" & forms![查询合同信息副本]!txt验收日期 & "*") And
((合同信息.到保日期) Like "*" & forms![查询合同信息副本]!txt到保日期 & "*") And
((合同信息.项目负责人) Like "*" & forms![查询合同信息副本]!txt项目负责人 & "*");
由于是多字段查询
而数据里的表的个字段都有可能为空,用上面我的思路做发现,查询出来并不是完全的
想问问大家该怎么改,可以直接改,没时间的话
给个多字段查询没有BUG(不会查询遗漏)的例子也可
哪怕给个思路也好
一般做法是用VBA累加生成SQL语句,再执行
对每个 (合同信息.合同编号)  改成  NZ(合同信息.合同编号) 
目前的办法是
SELECT *
FROM 合同信息
WHERE
IIf((forms!查询合同信息副本!txt单位代码) Is Null Or trim((forms!查询合同信息副本!txt合同编号))='',1=1,(((合同信息.单位代码) Like "*" & forms!查询合同信息副本!txt单位代码 & "*")))
And
IIf((forms!查询合同信息副本!txt合同编号) Is Null Or trim((forms!查询合同信息副本!txt合同名称))='',1=1,(((合同信息.合同编号) Like "*" & forms!查询合同信息副本!txt合同编号 & "*")))
And
IIf((forms!查询合同信息副本!txt合同名称) Is Null Or trim((forms!查询合同信息副本!txt单位名称))='',1=1,(((合同信息.合同名称) Like "*" & forms!查询合同信息副本!txt合同名称 & "*")))
And 
IIf((forms!查询合同信息副本!txt单位名称) Is Null Or trim((forms!查询合同信息副本!txt合同金额))='',1=1,(((合同信息.单位名称) Like "*" & forms!查询合同信息副本!txt单位名称 & "*")))
And 
IIf((forms!查询合同信息副本!txt合同金额) Is Null Or trim((forms!查询合同信息副本!txt签订日期))='',1=1,(((合同信息.合同金额) Like "*" & forms!查询合同信息副本!txt合同金额 & "*")))
And 
IIf((forms!查询合同信息副本!txt签订日期) Is Null Or trim((forms!查询合同信息副本!txt保修年限))='',1=1,(((合同信息.签订日期) Like "*" & forms!查询合同信息副本!txt签订日期 & "*")))
And
 IIf((forms!查询合同信息副本!txt保修年限) Is Null Or trim((forms!查询合同信息副本!txt验收日期))='',1=1,(((合同信息.保修年限) Like "*" & forms!查询合同信息副本!txt保修年限 & "*")))
And 
IIf((forms!查询合同信息副本!txt验收日期) Is Null Or trim((forms!查询合同信息副本!txt到保日期))='',1=1,(((合同信息.验收日期) Like "*" & forms!查询合同信息副本!txt验收日期 & "*"))) 
And 
IIf((forms!查询合同信息副本!txt到保日期) Is Null Or trim((forms!查询合同信息副本!txt项目负责人))='',1=1,(((合同信息.到保日期) Like "*" & forms!查询合同信息副本!txt到保日期 & "*")))
And 
IIf((forms!查询合同信息副本!txt项目负责人) Is Null,1=1,(((合同信息.项目负责人) Like "*" & forms!查询合同信息副本!txt项目负责人 & "*")))
这样就可以完成多条记录查询不遗漏的,请问还有什么其他办法
能简化查询方法吗
除了用VBA
在查询里写
还有更好的法子吗?
And 
(NZ(合同信息.合同编号) Like "*" & forms![查询合同信息副本]!txt合同编号 & "*") And
(NZ(合同信息.合同名称) Like "*" & forms![查询合同信息副本]!txt合同名称 & "*") And
受教了这样果然可以,谢谢指导
再问一个问题
(NZ(合同信息.合同编号) Like "*" & forms![查询合同信息副本]!txt合同编号 & "*") And 
使用这个因为是建的查询设计里做的,当我把它设计为窗体时,改用Combox传值到查询设计时
返回的确是空值,能否帮我说说怎么回事,十分感激
还有就是Combox本身的行来源选项我设置为了
SELECT 合同信息.合同编号, 合同信息.医院代码
FROM 合同信息
WHERE (((合同信息.单位代码) Like "*"));
这样可以方便查询时直接选择而不是自己输入
到后来就变成,对应的窗体Combox也没用了
在查询设计里原本运行时跳自己编的1个个输入框输入的查询条件参数,现在变成打开查询设计以下语言直接给我这张表的数据,非常的诡异,我还没输入呢,他怎么知道我要什么
SELECT *
FROM 合同信息
WHERE (((NZ([合同信息].[单位代码])) Like "*" & [forms]![查询合同信息]![txt单位代码] & "*") AND ((NZ([合同信息].[合同编号])) Like "*" & [forms]![查询合同信息]![txt合同编号] & "*") AND ((NZ([合同信息].[合同名称])) Like "*" & [forms]![查询合同信息]![txt合同名称] & "*") AND ((NZ([合同信息].[单位名称])) Like "*" & [forms]![查询合同信息]![txt单位名称] & "*") AND ((NZ([合同信息].[合同金额])) Like "*" & [forms]![查询合同信息]![txt合同金额] & "*") AND ((NZ([合同信息].[签订日期])) Like "*" & [forms]![查询合同信息]![txt签订日期] & "*") AND ((NZ([合同信息].[保修年限])) Like "*" & [forms]![查询合同信息]![txt保修年限] & "*") AND ((NZ([合同信息].[验收日期])) Like "*" & [forms]![查询合同信息]![txt验收日期] & "*") AND ((NZ([合同信息].[到保日期])) Like "*" & [forms]![查询合同信息]![txt到保日期] & "*") AND ((NZ([合同信息].[项目负责人])) Like "*" & [forms]![查询合同信息]![txt项目负责人] & "*"));

敬寻高手才能帮忙解答 如何用EMEDITOR把USBSTOR.IN_文件转换成USBSTOR.INF文件? 都说华师美女多,想看华师MM吗,来看我们的毕业聚餐照片! win2000进不了系统,急 都说华师美女多,想看华师MM吗,来看我们的毕业聚餐照片! 我是新手,攒了些问题,请帮帮忙,谢了 请高手帮忙看看rs232串口通讯的问题! 在数据窗口对象中使用 ole db的问题 --- 100分相赠 ppt中为什么不能加入AVI格式的剪切影片? 我是新手,攒了些问题,请帮帮忙,谢了 项有建,你什么时候从我的QQ群里退出来了 经常被女同事电到,我该怎么办 Linux下ADSL的DNS问题. 85%的网民做错的小学题,你试试? shaobinl(sb) 请进接分谢谢了,50分。 100分请你把jdbcodbc 桥驱动程序发给我 小弟不才 这段话的含义困惑了我半年,请资深的老前辈帮我解这段话的含义.. 为什么我的ACCESS数据库到20000多条记录以后就不能更新数据了?急啊!!马上给分!! 请教如何将摄像头的图象在客户端和服务器端传输呢?(可购买) socket问题,多谢回复,谢谢 如何知道win98、2000机器网卡的MAC,在线等待!!感谢! ASP.NET和c#到底是啥关系????? 结构、装箱、拆箱 有热心的朋友吗? 调试问题 散分,急找工作!最好工作地点在辽宁! 这个SQL语句怎样写 请大家给解释一下这段代码 如何用c#读取文件图片并存储到数据库中,并且从数据库中显示出来 asp.net什么例子学习进步快,谁有现成的例子。]