Access交流中心

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

参与查询的字段如果为空查询就出错,怎么修改?

dryang  发表于:2010-06-01 12:23:11  
复制

例子见附件,

 

目前遇到的问题是:由于有空的字段参与查询,如果按常规表达式 like * &XXX&* ,未进行自定义查询之前就已经把含空字段的

 

记录排除了,

 

将查询中空字段的条件加上 or  is null 后,初始状态正常,但是每次查询时都会将含空字段的记录加入查询的结果,而不管其

 

他条件是否符合,请问怎么修改呢?

 

Top
王樵民 发表于:2010-06-01 14:55:55

附件?

 



dryang 发表于:2010-06-01 15:13:52
点击下载此附件,我记得我传了啊,再传一次

王樵民 发表于:2010-06-01 16:13:05

只要在条件的末尾加入  And Not Is Null即可,见下面的例子。

Like "*" & [Forms]![年度]![Text1] & "*" And Not Is Null

参考附件

 

点击下载此附件

dryang 发表于:2010-06-01 19:44:57

谢谢版主

 

但是修改后的数据库在没有点击 查询 之前就只剩了四条记录啊,我表里可是有六条记录的啊

 

这样做的后果是在直接把这个字段为空的记录排除了啊



蒋元根 发表于:2010-06-01 20:40:29

给你修改了一下:

SELECT Pxxb.住院号, Pxxb.姓名, Pxxb.性别, Pxxb.年龄, Pxxb.出生日期, Year([入院日期]) AS 年度, Pxxb.入院日期, Pxxb.出院日期, Pxxb.死亡日期, Pxxb.电话, Pxxb.地址, Pxxb.身份证号, Pxxb.入院诊断, Pxxb.出院诊断, Pxxb.手术名称, Pxxb.备注, Pxxb.影像资料, Pxxb.回访情况
FROM Pxxb
WHERE (((Year([入院日期]) & [入院诊断] & [出院诊断] & [手术名称]) Like IIf(IsNull([Forms]![年度]![年度] & [Forms]![年度]![入院诊断] & [Forms]![年度]![出院诊断] & [Forms]![年度]![手术名称]),'*','*' & [Forms]![年度]![年度] & [Forms]![年度]![入院诊断] & [Forms]![年度]![出院诊断] & [Forms]![年度]![手术名称] & '*')));
供参考.

点击下载此附件

dryang 发表于:2010-06-01 20:48:05

谢谢版主的帮忙啊,我刚才试了一下,之前的问题已经解决了

 

但是又出现一个问题,入院诊断和出院诊断输入关键词后查询结果不正确

 

例如,入院诊断 输入 血肿,查询的结果有 入院诊断不包括血肿的病人资料



dryang 发表于:2010-06-02 10:38:16

我把表的字段为空的都添加上了 无,这个问题就可以避免了

 

虽然问题可以换个方式解决,但是我还是想知道这个问题产生的原因



蒋元根 发表于:2010-06-02 16:00:47

建议扩大所查询的关键词的字数,可以使所查询的精确度提高,如血肿扩大到血肿清除术后.

 



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