Foxtable(狐表)用户栏目专家坐堂 → 筛选出的日期不正确


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

主题:筛选出的日期不正确

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
筛选出的日期不正确  发帖心情 Post By:2018/10/16 10:34:00 [只看该作者]

Dim Filter As String

With e.Form.Controls("DateTimePicker3")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 >= #" & .Value & "#"
        vars("起始日期") = .Value
    End If
End With

With e.Form.Controls("DateTimePicker4")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 <= #" & .Value & "#"
        vars("终止日期") = .Value
    End If
End With

If Filter > "" Then
    DataTables("表A").loadfilter = "日期 > # " & Date.Today.adddays(-360) & " #"     ' 加载一年内的数据,只在这一年的数据里面进行查询.
    DataTables("表A").load
    Tables("表A").Filter = "[姓名] = '小王' and " & filter    ' 这里筛选出的日期超出我期望的范围了,怎么回事呢?
Else
    MessageBox.Show("Sorry! 没有查询到在此期间任何记录!")
End If



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


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

DataTables("表A").loadfilter = "日期 >#" & Date.Today.adddays(-360) & "#"

#前后的空格去掉

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2018/10/16 11:50:00 [只看该作者]

还是不行哦。 
比如,我只想查2018-03-01到2018-05-30这段记录, 结果把2017的记录都查出来了。

再帮看下,哪里还有问题呢?

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


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

 加载一年内的数据 -- 是指今年内?还是指去年今日至今?如果是后者上面的代码不会有问题。具体上传实例看看

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2018/10/16 12:02:00 [只看该作者]

DataTables("表A").loadfilter = "日期 >#" & Date.Today.adddays(-360) & "#"  '加载从今天算起,360天内,差不多一年的数据吧。

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/16 14:02:00 [只看该作者]

msgbox(filter) '显示的条件是什么?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/16 15:24:00 [只看该作者]

代码没有问题的,最后肯定是筛选你一年内的数据,以及你设置的筛选。

 

如果还有问题做个实例发上来测试。


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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2018/10/16 16:37:00 [只看该作者]

Dim Filter As String

With e.Form.Controls("DateTimePicker3")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 >= #" & .Value & "#"
        vars("起始日期") = .Value
    End If
End With

With e.Form.Controls("DateTimePicker4")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 <= #" & .Value & "#"
        vars("终止日期") = .Value
    End If
End With

If Filter > "" Then
    DataTables("表A").loadfilter = "日期 > # " & Date.Today.adddays(-360) & " #"     ' 加载一年内的数据,只在这一年的数据里面进行查询.
    DataTables("表A").load
    Tables("表A").Filter = "[姓名] = '小王'  or [姓名] = '小张' and " & filter    是这里的问题,如果再加一个条件 or [姓名] = '小张', 筛选日期就不正确了。应该怎么改呢?
Else
    MessageBox.Show("Sorry! 没有查询到在此期间任何记录!")
End If


[此贴子已经被作者于2018/10/16 16:37:44编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/16 16:40:00 [只看该作者]

Tables("表A").Filter = "([姓名] = '小王'  or [姓名] = '小张') and " & filter    

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2018/10/16 16:46:00 [只看该作者]

甜甜好厉害, 帮了我的大忙。 我怎么能请您请吃饭呢?图片点击可在新窗口打开查看

 回到顶部