条件表达式使用not like
时,当该单元格没有内容时,not like 找不到该行,合成表达式代码如下:
drs = DataTables("通知消息").Select("通知类型 = '" & Value3s(n) & "' and 阅读权限 like '%" & yhID & "' and 已读状态 not like '%" & yhID & "%'")
这样可以得到结果:
drs = DataTables("通知消息").Select("通知类型 = '" & Value3s(n) & "' and 阅读权限 like '%" & yhID & "'")
去掉后面not like 那一段,却始终找不到符合条件的行,测试半天找到了问题,最终确定:使用not like 时,该字段不能为空,否则,视为不符合条件,这样问题就来了,该字段为空时,理应确定为符合not like的条件才对,现在要满足not like的条件,必须给单元格输入任意一个特殊字符则可以,希望贺老师改进一下,.Select再进行比较的时候,对not like条件值自动加上多个特殊字符组成的字符串来规避一下即可,有的单元格不一定全部会输入值,当然,目前还有一个解决办法,多增加一个条件,阅读权限 is null ,代码改成这样则可:
drs = DataTables("通知消息").Select("通知类型 = '" & Value3s(n) & "' and 阅读权限 like '%" & yhID & "' and (已读状态 is null or 已读状态 not like '%" & yhID & "%')")
还是建议将 空值视为 not like
谢谢!
[此贴子已经被作者于2022/1/7 1:26:33编辑过]