Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:婴狐 帖子:91 积分:917 威望:0 精华:0 注册:2011/3/3 3:34:00
[求助]  发帖心情 Post By:2013/11/26 21:42:00 [只看该作者]

请教前辈,我有一个订单列表,里面有订单录入日期,建了一个查询窗口,查询条件里有下拉列表框录入日期,我想做成这样的效果,点录入日期下拉列表框后显示有当天,最近三天,本周,上周,本月,上月,本季度,本年,所有,当我选择下拉列表框后,窗口里的表按我的选择自动筛选,请教这个代码应该怎么写,请前辈赐教。



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


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

 参考年月日的筛选写法。


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


加好友 发短信
等级:婴狐 帖子:91 积分:917 威望:0 精华:0 注册:2011/3/3 3:34:00
  发帖心情 Post By:2013/11/26 22:36:00 [只看该作者]

前辈帮我看看这个代码应该怎么优化


Dim y As Integer = Date.Today.Year
Dim sy As Integer = (y-1)
Dim sy1 As New Date(sy, 1, 1)
Dim sy2 As New Date(sy, 12, 31) 

Dim y1 As New Date(y, 1, 1)
Dim y2 As New Date(y, 12, 31) 

Dim q As Integer = (Date.Today.Month - 1) \ 3 + 1 '计算现在是第几个季度Dim dt1 As New Date(y, 3 * (q - 1) + 1, 1) '获取本季度的第一天
Dim q1 As New Date(y, 3 * (q - 1) + 1, 1) '获取本季度的第一天
Dim q2 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) '获取本季度的最后一天

Dim m As Integer = Date.Today.Month
Dim m1 As New Date(y, m, 1)
Dim m2 As New Date(y, m, Date.DaysInMonth(y, m)) '获取本月的最后一天

Dim w As Integer = Date.Today.DayOfWeek '算出今天是星期几
Dim dt1 As Date = Date.Today.AddDays(-w) '获取本周的第一天
Dim dt2 As Date = Date.Today.AddDays(6 - w) '获取本周的最后一天

Dim Filter As String
If txt = "当天" Then
    Filter = "录入日期 >= #" & dt1 & "# And 录入日期 <= #" & dt1 & "#"
    tbl.Filter = Filter
End If
If txt = "本周" Then
    Filter = "录入日期 >= #" & dt1 & "# And 录入日期 <= #" & dt2 & "#"
    tbl.Filter = Filter
End If
If txt = "本月" Then
    Filter = "录入日期 >= #" & m1 & "# And 录入日期 <= #" & m2 & "#"
    tbl.Filter = Filter
End If

If txt = "本季度" Then
    Filter = "录入日期 >= #" & q1 & "# And 录入日期 <= #" & q2 & "#"
    tbl.Filter = Filter
End If
If txt = "本年" Then
    Filter = "录入日期 >= #" & y1 & "# And 录入日期 <= #" & y2 & "#"
    tbl.Filter = Filter
End If
If txt = "上年" Then
    Filter = "录入日期 >= #" & sy1 & "# And 录入日期 <= #" & sy2 & "#"
    tbl.Filter = Filter
End If


If txt = "所有" Then
    Filter = ""
    tbl.Filter = Filter
End If


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


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

 只能这样写了。

 你把上面的获取日期的代码,分别放在 if 判断语句里面就行了。

 回到顶部