Foxtable(狐表)用户栏目专家坐堂 → 数据加载问题


  共有2528人关注过本帖树形打印复制链接

主题:数据加载问题

帅哥,在线噢!
ycs5801
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:970 积分:6968 威望:0 精华:0 注册:2009/6/24 9:44:00
数据加载问题  发帖心情 Post By: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的行。

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/24 22:29:00 [只看该作者]

多看几遍:http://www.foxtable.com/webhelp/topics/1284.htm

filter=filter & "责任部门='" & user.name & "' and 是否单发=0"

 回到顶部
帅哥,在线噢!
ycs5801
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:970 积分:6968 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2021/10/24 22:57:00 [只看该作者]

这样写最后筛选出的结果是责任部门列的值都是当前登录用户的行,而且是否单发列没有被勾选。而我要的是责任部门列中也存在不是当前登录用户名的行,只是把责任部门列不是当前登录用户名且是否单发被勾选的行排除掉。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107133 积分:544908 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/24 23:12:00 [只看该作者]

不可能的。拿这个条件去数据库执行有没有问题?

 回到顶部
帅哥,在线噢!
ycs5801
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:970 积分:6968 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2021/10/24 23:26:00 [只看该作者]

 "责任部门='" & user.name ,老师,这句筛选的结果不就是把责任部门列都筛选成当前登录用户的行吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2021/10/25 8:27:00 [只看该作者]

要严谨一些:

if filter > "" Then      
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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:970 积分:6968 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2021/10/25 9:28:00 [只看该作者]

比如说我的责任部门有财务部,工程部,综合部,我现在是综合部登录,如果这样,是不是显示的都是综合部的行?而实际上,如果责任部门列是财务部且是否单发为0的行,我也想显示。

 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2021/10/25 9:51:00 [只看该作者]

好办,这就不是and,而是or了:

filter= "责任部门 ='" & user.name &  "' or  (责任部门='" & user.name & "' and 是否单发=0)"

 回到顶部
帅哥,在线噢!
ycs5801
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:970 积分:6968 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2021/10/25 10:14:00 [只看该作者]


filter= "责任部门 ='" & user.name &  "' or  (责任部门<>'" & user.name & "' and 是否单发=0)"

应该不等于吧

 回到顶部
帅哥哟,离线,有人找我吗?
有点酸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2021/10/25 10:55:00 [只看该作者]

您的需要,您清除,messagebox显示合成的条件,根须需要调整。

 回到顶部
总数 12 1 2 下一页