以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  相同时段筛选代码求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8321)

--  作者:king
--  发布时间:2010/10/5 9:22:00
--  相同时段筛选代码求助

已知菜单里面有“相同时段筛选代码,同年、同月、同日等”,但它是系统命令,不知怎么样加上参数。

 

比如窗口里一个“按钮”想要在某一个表中筛选出“同月”的数据,代码要如何编写?谢谢回复。


--  作者:mr725
--  发布时间:2010/10/8 8:35:00
--  

窗口按钮干吗要筛选表中的同月呢,你还要指定表的某单元格呀,真麻烦;在窗口加个Textbox控件就行了,筛选等于其中的内容【“月份”】即可。


--  作者:狐狸爸爸
--  发布时间:2010/10/8 8:38:00
--  

Dim v  As Date = Tables("XXX").Current("日期")
Dim y As Integer = v.Year
Dim m As Integer = v.Month
Dim FirstDay As Date = New Date(y, m, 1)
Dim LastDay As Date = New Date(y, m, Date.DaysInMonth(y,m))

Tables("XXX").Filter = "日期 >= "#" & FirstDate & "# And 日期 <=#" & LastDate & "#"


--  作者:king
--  发布时间:2010/10/8 8:46:00
--  
以下是引用mr725在2010-10-8 8:35:00的发言:

窗口按钮干吗要筛选表中的同月呢,你还要指定表的某单元格呀,真麻烦;在窗口加个Textbox控件就行了,筛选等于其中的内容【“月份”】即可。

谢谢你的回复。

 

只希望指定某表的某列,不需指定单元格。如一复选框勾选后为自动筛选出同年的数据

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:狐狸爸爸
--  发布时间:2010/10/8 8:51:00
--  

设置日期复选框的CheckedChanged事件代码

 

If e.Sender.Checked Then
    Dim v  As Date = Tables("表A").Current("日期")
    Dim y As Integer = v.Year
    Dim m As Integer = v.Month
    Dim FirstDay As Date = New Date(y, m, 1)
    Dim LastDay As Date = New Date(y, m, Date.DaysInMonth(y,m))
    Tables("表A").Filter = "日期 >= #" & FirstDay & "# And 日期 <=#" & LastDay & "#"
End If


--  作者:mr725
--  发布时间:2010/10/8 9:56:00
--  
以下是引用king在2010-10-8 8:46:00的发言:

谢谢你的回复。

 

只希望指定某表的某列,不需指定单元格。如一复选框勾选后为自动筛选出同年的数据

 下载信息  [文件大小:544.0 KB  下载次数:2]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

用了狐爸的代码,笨笨地做了一个,你试一试啦··· 

1、请应用窗口

2、光标还必须点到某日期的单元格,不然不知道你要筛选那年那月呀

3、没有设置条件,需要自己加上

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选同年、同季、同月.rar


--  作者:king
--  发布时间:2010/10/8 15:33:00
--  
以下是引用狐狸爸爸在2010-10-8 8:51:00的发言:

设置日期复选框的CheckedChanged事件代码

 

If e.Sender.Checked Then
    Dim v  As Date = Tables("表A").Current("日期")
    Dim y As Integer = v.Year
    Dim m As Integer = v.Month
    Dim FirstDay As Date = New Date(y, m, 1)
    Dim LastDay As Date = New Date(y, m, Date.DaysInMonth(y,m))
    Tables("表A").Filter = "日期 >= #" & FirstDay & "# And 日期 <=#" & LastDay & "#"
End If

 

 

狐狸爸爸的代码好用,再请教同季、同周的代码?6楼兄弟的似乎复杂了点


--  作者:czy
--  发布时间:2010/10/8 19:53:00
--  

这是我两年前学着写的代码,同季。

 

Dim a As Date = Tables("订单").Current("日期")
Dim b As Integer = (a.Month-1) \\ 3
Dim c As New Date(a.Year,b*3+1,1)
Dim d As New Date(a.Year,b*3+3,Date.DaysInMonth(a.year,b*3+3))
Tables("订单").Filter = "[日期] >= #" & c & "# And 日期 <= # "& d &"#"

 

同周。

 

Dim a As Date = Tables("订单").Current("日期")
Dim b As Date
a = a.AddDays(-a.dayofweek+1)
b = a.AddDays(-a.dayofweek+7)
Tables("订单").Filter = "[日期] >= #" & a & "# And 日期 <= # "& b &"#"

[此贴子已经被作者于2010-10-9 9:44:19编辑过]