以文本方式查看主题

-  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=145690)

--  作者:km007
--  发布时间:2020/2/4 20:30:00
--  [求助]离职员工工龄的筛选条件问题
请问离职员工 工龄的筛选条件该怎么写呢?

工龄(年) 指:筛选范围是 在职 多少年 内的员工信息。
工龄(月) 指:筛选范围是 在职 多少个月 内的员工信息。
工龄(日) 指:筛选范围是 在职 多少天 内的员工信息。

1、我要筛选 在职工龄 在 1-3 年 的员工信息,这个 工龄(年) 筛选条件应该怎么写呢?
2、我要筛选 在职工龄 在 5-13 个月 的员工信息,这个 工龄(月) 筛选条件应该怎么写呢?
3、我要筛选 在职工龄 在 100-300 天 的员工信息,这个 工龄(日)  筛选条件应该怎么写呢?

Dim Filter As String
With e.Form.Controls("最小值")
    If .Value <> "最小值" Then
        Select Case e.Form.Controls("工龄").value
            Case "工龄(年)"
                Filter = "" \'筛选年的条件
            Case "工龄(月)"
                Filter = "" \'筛选月的条件
            Case "工龄(日)"
                Filter = "" \'筛选年的条件
        End Select
    End If
End With
With e.Form.Controls("最大值")
    If .Value <> "最大值" Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Select Case e.Form.Controls("工龄").value
            Case "工龄(年)"
                Filter = Filter & "" \'筛选年的条件
            Case "工龄(月)"
                Filter = Filter & "" \'筛选月的条件
            Case "工龄(日)"
                Filter = Filter & "" \'筛选日的条件
        End Select
    End If
End With
DataTables("表A").LoadTop = "100 Percent"
DataTables("表A").LoadFilter = Filter
DataTables("表A").Load(False)


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200204202225.png
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.foxdb
[此贴子已经被作者于2020/2/4 20:30:56编辑过]

--  作者:有点蓝
--  发布时间:2020/2/4 20:49:00
--  
比如:

Dim Filter As String
With e.Form.Controls("最小值")
    If .Value > "" Then
        Select Case e.Form.Controls("工龄").value
            Case "工龄(年)"
                Filter = "工龄_年 > " & .Value
            Case "工龄(月)"
                Filter =  "(工龄_月 + 工龄_年 * 12) >= " & .Value
            Case "工龄(日)"
                Filter = "DateDiff(\'d\', 入职日期, 离职日期) >= " & .Value
        End Select
    End If
End With