以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  筛选代码空行提示错误,如何修改?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=11702)

--  作者:yanzhen2010
--  发布时间:2011/8/8 16:48:00
--  筛选代码空行提示错误,如何修改?

筛选代码空行提示错误,如何修改?

If e.form.Controls("CheckBox1").checked And e.Sender.Checked Then
    Tables("长期医嘱").Filter = "执行 = False"
Else
    Tables("长期医嘱").Filter = "执行 = False And  住院号 ="& CurrentTable.Current("住院号") &""
End If

这段代码在执行前需要撤销之前的筛选。狐表Filter函数有参数吗?如有参数就好办了。
[此贴子已经被作者于2011-8-8 16:57:03编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/8/8 16:57:00
--  

表中都没有行的话,CurrentTable.Current肯定会出错啊?

 

代码前面加上:

 

If Tables("XXX").Current Is Nothing then

    Return

End if

 


--  作者:yanzhen2010
--  发布时间:2011/8/8 17:08:00
--  

老总,我这样的代码有四组,分别对应“已停医嘱”、“未停医嘱”、“今日医嘱”、“全部医嘱”,能不能进行下一个筛选前撤销之前的筛选,有参数吗?,向易表那样?

 

不然在每组代码前都需加:

If Tables("XXX").Current Is Nothing then

     Tables("XXX").Filter = ""

End if

 

 

这样做能成功,但太牵强,等于是显示了全部,然后又进行了筛选,不太科学。

If Tables("长期医嘱").Current Is Nothing Then
     Tables("长期医嘱").Filter = ""
End If
If e.form.Controls("CheckBox1").checked And e.Sender.Checked Then
    Tables("长期医嘱").Filter = "执行 = True"
Else
    Tables("长期医嘱").Filter = "执行 = True And  住院号 ="& CurrentTable.Current("住院号") &""
End If

 

如果有几千行数据,让重新显示再筛选,有点滑稽

[此贴子已经被作者于2011-8-8 17:55:28编辑过]