Foxtable(狐表)用户栏目专家坐堂 → 日期列筛选异常


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

主题:日期列筛选异常

帅哥哟,离线,有人找我吗?
有点甜
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/17 16:56:00 [显示全部帖子]

筛选带时间的日期列要这样处理

 

Dim d1 As Date = "2018-5-17 16:56:00"

Dim d2 As Date = "2018-5-17 16:57:00"

Tables("表A").Filter = "时间 >= #" & d1 & "# and 事件 < #" & d2 & "#"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/17 17:22:00 [显示全部帖子]

foxtable自带的日期筛选是有点问题。你可以在beforeFilter事件处理一下

 

(因为时间的值,可能带有毫秒,直接比较的时候,没有判断毫秒值,所以可能有错)

 

Dim ary() As String = e.Filter.trim.Split(" ")
Dim str As String = ""
msgbox(e.filter)
For i As Integer = 0 To ary.length - 1
    If ary(i) = "[第十列]" Then
        If ary(i+1) = "=" Then
            Dim s As Date = ary(i+2).replace("#","") & " " &  ary(i+3).replace("#", "")
            str &= ary(i) & " >= #" & s & "# and " & ary(i) & " < #" & s.AddSeconds(1) & "# "
            i += 3
        ElseIf ary(i+1) = "<=" Then
            Dim s As Date = ary(i+2).replace("#","") & " " &  ary(i+3).replace("#", "")
            str &= ary(i) & " < #" & s.AddSeconds(1) & "# "
            i += 3
        Else
            str &= ary(i) & " "
        End If
    Else
        str &= ary(i) & " "
    End If
Next
msgbox(str)
e.Filter = str.trim

 


 回到顶部