以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数据加载问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172655) |
|
-- 作者:ycs5801 -- 发布时间:2021/10/24 22:20:00 -- 数据加载问题 Dim Filter As String With e.Form.Controls("combobox3") If .Value IsNot Nothing Then Filter &= "发起部门 = \'" & .Value & "\'" End If End With With e.Form.Controls("startdate1") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "发起时间 >= \'" & .Value & "\'" End If End With With e.Form.Controls("enddate1") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "发起时间 <= \'" & .Value & "\'" End If End With If e.Form.Controls("checkbox3").checked=True If Filter > "" Then Filter = Filter & " And " End If Filter = filter & "是否完成=1" ElseIf e.Form.Controls("checkbox3").checked=False If Filter > "" Then Filter = Filter & " And " End If Filter = filter & "是否完成=0" End If filter=filter & "责任部门=user.name and 是否单发=0" If Filter > "" Then With Tables("主表").DataTable .LoadFilter = Filter .LoadOrder = "发起时间 Desc" .Load() End With Tables("主窗口_Table3").Sort = "日期 DESC" End If 这段代码除了黄色标记部分都是正常的,现在加入黄色标记部分想实现的功能是:排除掉责任部门不等于user.name并且是否单发=1的行。
|
|
-- 作者:有点蓝 -- 发布时间:2021/10/24 22:29:00 -- 多看几遍:http://www.foxtable.com/webhelp/topics/1284.htm filter=filter & "责任部门=\'" & user.name & "\' and 是否单发=0" |
|
-- 作者:ycs5801 -- 发布时间:2021/10/24 22:57:00 -- 这样写最后筛选出的结果是责任部门列的值都是当前登录用户的行,而且是否单发列没有被勾选。而我要的是责任部门列中也存在不是当前登录用户名的行,只是把责任部门列不是当前登录用户名且是否单发被勾选的行排除掉。 |
|
-- 作者:有点蓝 -- 发布时间:2021/10/24 23:12:00 -- 不可能的。拿这个条件去数据库执行有没有问题? |
|
-- 作者:ycs5801 -- 发布时间:2021/10/24 23:26:00 -- "责任部门=\'" & user.name ,老师,这句筛选的结果不就是把责任部门列都筛选成当前登录用户的行吗? |
|
-- 作者:有点酸 -- 发布时间:2021/10/25 8:27:00 -- 要严谨一些:
filter=filter & " And (责任部门=\'" & user.name & "\' and 是否单发=0)" Else
filter= "责任部门=\'" & user.name & "\' and 是否单发=0" end if \'还有预期反复检查代码,不如直接显示一下和成的表达式是什么,这才是编程 messagebox.show(filter)
[此贴子已经被作者于2021/10/25 8:27:12编辑过]
|
|
-- 作者:ycs5801 -- 发布时间:2021/10/25 9:28:00 -- 比如说我的责任部门有财务部,工程部,综合部,我现在是综合部登录,如果这样,是不是显示的都是综合部的行?而实际上,如果责任部门列是财务部且是否单发为0的行,我也想显示。 |
|
-- 作者:有点酸 -- 发布时间:2021/10/25 9:51:00 -- 好办,这就不是and,而是or了: filter= "责任部门 =\'" & user.name & "\' or (责任部门=\'" & user.name & "\' and 是否单发=0)"
|
|
-- 作者:ycs5801 -- 发布时间:2021/10/25 10:14:00 --
|
|
-- 作者:有点酸 -- 发布时间:2021/10/25 10:55:00 -- 您的需要,您清除,messagebox显示合成的条件,根须需要调整。 |