以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  内容有时为空的字段能否参与筛选?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41370)

--  作者:tomcat521
--  发布时间:2013/10/17 22:44:00
--  内容有时为空的字段能否参与筛选?
内容为空的字段如何参与筛选?
下图只有第1-3行能参与筛选,第4-10行不行。

此主题相关图片如下:图片1.jpg
按此在新窗口浏览图片

下面的代码是否需要调整呢?
Dim cp As WinForm.ComboBox = e.Form.Controls("产品")
Dim ks As WinForm.TextBox = e.Form.Controls("科室")
Dim xgyw As WinForm.TextBox = e.Form.Controls("相关药物")
Dim syz As WinForm.TextBox = e.Form.Controls("适应症")
Dim yjjl As WinForm.TextBox = e.Form.Controls("研究结论")

Tables("文献").Filter = "对应产品 Like \'*" & cp.Text & "*\' And 科室 Like \'*" & ks.Text & "*\' And 相关药物 Like \'*" & xgyw.Text & "*\' And 适应症 Like \'*" & syz.Text & "*\'And 研究结论 Like \'*" & yjjl.Text & "*\'"


--  作者:有点甜
--  发布时间:2013/10/17 22:47:00
--  
 类似于:

Tables("文献").Filter = "len(对应产品) > 0 and 对应产品 like \'**\'"

--  作者:有点甜
--  发布时间:2013/10/17 22:49:00
--  
 或者

Tables("文献").Filter = "对应产品 is not null and 对应产品 <> \'\' and 对应产品 like \'**\'"

--  作者:tomcat521
--  发布时间:2013/10/17 23:17:00
--  
对应产品是必填的,所以用len(对应产品) > 0;其他几个字段有时候填,有时候不填,所有用len(字段名) >= 0:

Tables("文献").Filter = " len(对应产品) > 0 and 对应产品 Like \'*" & cp.Text & "*\' AND len(科室) >=0 and 科室 Like \'*" & ks.Text & "*\' AND len(相关药物)>=0 and 相关药物 Like \'*" & xgyw.Text & "*\' AND len(适应症) >=0 and 适应症 Like \'*" & syz.Text & "*\'AND len(研究结论) >=0 and 研究结论 Like \'*" & yjjl.Text & "\'"

但是问题还是没解决。。。。帮忙分析分析,谢谢!


--  作者:Bin
--  发布时间:2013/10/18 9:11:00
--  
Tables("文献").Filter = "对应产品 对应产品 like \'*字符串*\' and (相关药物 like \'*字符串*\' or 相关药物 is null)"
--  作者:jspta
--  发布时间:2013/10/18 10:13:00
--  

换个思路,你先判断你添加的过滤条件,即判断文本框字符是否为空,为空则不添加该条件。

就避免了你说的问题了


--  作者:tomcat521
--  发布时间:2013/10/18 11:05:00
--  
换成如下代码就可以了:
Tables("文献").Filter = "对应产品 Like \'*" & cp.Text & "*\' and (科室 Like \'*" & ks.Text & "*\' or 科室 is null) and (相关药物 Like \'*" & xgyw.Text & "*\' or 相关药物 is null) and (适应症 Like \'*" & syz.Text & "*\'or 适应症 is null) and (研究结论 Like \'*" & yjjl.Text & "\' or 研究结论 is null)"
Foxtable真是好,初学时碰到问题总能很快的得到指导,谢谢各位!