以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:如何一键实现帅选本月数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=31146)

--  作者:yangweicai
--  发布时间:2013/4/10 22:03:00
--  求助:如何一键实现帅选本月数据
在表一中有一列是日期,菜单中有两个按键,怎么通过按按键1实现表一中的数据全为本月数据,按键2实现显示所有数据
--  作者:有点甜
--  发布时间:2013/4/10 22:41:00
--  

按时段筛选数据
我们经常需要筛选某个时段的数据,下面列出了各种情况的筛选代码给大家参考。

筛选指定年份数据
例如筛选2011年的订单:
Dim y As Integer = 2011 \'指定年份
Dim dt1 As New Date(y, 1, 1)
Dim dt2 As New Date(y, 12, 1)
Dim Filter As String
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables("订单").Filter = Filter

筛选指定月份数据
例如筛选2011年6月份的订单:
Dim y As Integer = 2011 \'指定年份
Dim m As Integer = 6 \'指定月份
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(2011,6)) \'获取该月的最后一天
Dim Filter As String
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables("订单").Filter = Filter

筛选指定季度的数据
例如筛选2011年2季度的订单:
Dim y As Integer = 2011 \'指定年份
Dim q As Integer = 2 \'指定季度
Dim dt1 As New Date(y, 3 * (q - 1) + 1, 1) \'获取该季度的第一天
Dim dt2 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) \'获取该季度的最后一天
Dim Filter As String
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables("订单").Filter = Filter

筛选本年数据
例如筛选本年的订单:
Dim y As Integer = Date.Today.Year
Dim dt1 As New Date(y, 1, 1)
Dim dt2 As New Date(y, 12, 31)
Dim Filter As String
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables("订单").Filter = Filter

筛选本季度数据
例如筛选本季度的订单:
Dim y As Integer = Date.Today.Year
Dim q As Integer = (Date.Today.Month - 1) \\ 3 + 1 \'计算现在是第几个季度
Dim dt1 As New Date(y, 3 * (q - 1) + 1, 1) \'获取本季度的第一天
Dim dt2 As New Date(y, 3 * q, Date.DaysInMonth(2011,3 * q)) \'获取本季度的最后一天
Dim Filter As String
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables("订单").Filter = Filter

筛选本月数据
例如筛选本月的订单:
Dim y As Integer = Date.Today.Year
Dim m As Integer = Date.Today.Month
Dim dt1 As New Date(y, m, 1)
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天
Dim Filter As String
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables("订单").Filter = Filter

筛选本周数据
例如筛选本周的订单:
Dim y As Integer = Date.Today.Year
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
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
Tables("订单").Filter = Filter


--  作者:kolen
--  发布时间:2013/5/7 20:13:00
--  
这个太有用了,顶。收藏了
--  作者:ZHX241806
--  发布时间:2013/6/12 6:59:00
--  

请问高手:如何用按扭一健显示今天日期的所有筛选?


--  作者:lsy
--  发布时间:2013/6/12 8:55:00
--  

菜单按钮:(初始文本:查询本月)

(注:日期列的日期时间格式Date)

If e.Button.Text = "查询本月" Then
    e.Button.Text = "查询全部"
    Dim dt1 As Date = Format(Date.Today,"y")
    Dim dt2 As Date = Date.Today()
    Dim Filter As String
    Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"
    Tables("订单").Filter = Filter
Else
    e.Button.Text = "查询本月"
    Tables("订单").Filter = ""
End If


--  作者:lsy
--  发布时间:2013/6/12 9:08:00
--  

查询当天数据:

 

(注:日期列的日期时间格式DateLongTime)

If e.Sender.Text = "查询当日" Then
    e.Sender.Text = "查询全部"
    Dim dt1 As Date = Format(Date.Today,"m")
    Dim dt2 As Date = Date.Now()
    Dim Filter As String
    Filter = "第二列 > = #" & dt1 & "# And 第二列 < = #" & dt2 & "#"
    Tables("表C").Filter = Filter
Else
    e.Sender.Text = "查询当日"
    Tables("表C").Filter = ""
End If
 

 

[此贴子已经被作者于2013-6-12 9:14:51编辑过]

--  作者:lsy
--  发布时间:2013/6/12 10:55:00
--  

简化版:

本年 Tables("订单").Filter = "日期 > = #" & Date.Now().Year & "-01-01" & "# And 日期 < = #" & Date.Now() & "#"
本月 Tables("订单").Filter = "日期 > = #" & Format(Date.Now(),"y") & "# And 日期 < = #" & Date.Now() & "#"
本日 Tables("订单").Filter = "日期 > = #" & Format(Date.Now(),"m") & "# And 日期 < = #" & Date.Now() & "#"

[此贴子已经被作者于2013-6-12 12:52:48编辑过]

--  作者:ZHX241806
--  发布时间:2013/6/14 6:55:00
--  
请问高手:如何一健显示明天的数据?
--  作者:zaianda
--  发布时间:2013/6/14 8:47:00
--  

LZ,请在相应的代码中使用 Tables("订单").Filter = Filter 进行筛选,筛选日期的一般思路是这样:定义要筛选时段的第一天最后一天,筛选的条件就是:第一天≤筛选日期≤最后一天。


例如筛选2011年6月份的订单:
Dim y As Integer = 2011 \'指定年份
Dim m As Integer = 6 \'指定月份
Dim dt1 As New Date(y, m, 1)  \'获得该月第一天
Dim dt2 As New Date(y, m, Date.DaysInMonth(2011,6)) \'获取该月的最后一天
Dim Filter As String     \'转化为字符串
Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#"   \'筛选条件为第一天≤筛选日期≤最后一天
Tables("订单").Filter = Filter


--  作者:狐狸爸爸
--  发布时间:2013/6/14 8:53:00
--  
以下是引用ZHX241806在2013-6-14 6:55:00的发言:
请问高手:如何一健显示明天的数据?

 

Dim dt As date = Date.Today.Adddays(1)

Tables("xxx").Filter = "日期 = #" & dt & "#"