为了让我的生活变得更加轻松,我设置了3列相同日期内容的列。第一个以mm / dd / yyyy格式显示,第二个以yyyy-mm格式显示,第三个以yyyy-q格式显示。由于我的报告,我故意这样做。有时我需要创建每月,每季度,每年等。通常,我使用一个邀请用户选择开始和结束日期并单击按钮运行报表的表单。该报告提取了一个查询,我在日期部分指定了该查询以提取开始日期和结束日期之间的所有信息。这次,我希望执行相同的过程,而不是开始和结束日期-我希望用户选择他想要的季度,以便查询将提取有关该季度的所有信息。我在归档标准中指定了什么?
筛选
DatePart("q", [YourDateField])
或者
Format([YourDateField], "yyyyq")
在给定年份和季度的情况下,要获取一个季度的第一个和最后一个日期,可以使用以下表达式:
DateQuarterFirst = DateSerial(Y, 1 + 3 * (Q - 1), 1)
DateQuarterLast = DateSerial(Y, 1 + 3 * Q, 0)
如果您具有季度的日期,则可以使用以下功能获取该日期的季度的第一个和最后一个日期:
Public Function DateThisQuarterFirst( _
Optional ByVal datDateThisQuarter As Date) As Date
Const cintQuarterMonthCount As Integer = 3
Dim intThisMonth As Integer
If datDateThisQuarter = 0 Then
datDateThisQuarter = Date
End If
intThisMonth = (DatePart("q", datDateThisQuarter) - 1) * cintQuarterMonthCount
DateThisQuarterFirst = DateSerial(Year(datDateThisQuarter), intThisMonth + 1, 1)
End Function
Public Function DateThisQuarterLast( _
Optional ByVal datDateThisQuarter As Date) As Date
Const cintQuarterMonthCount As Integer = 3
Dim intThisMonth As Integer
If datDateThisQuarter = 0 Then
datDateThisQuarter = Date
End If
intThisMonth = DatePart("q", datDateThisQuarter) * cintQuarterMonthCount
DateThisQuarterLast = DateSerial(Year(datDateThisQuarter), intThisMonth + 1, 0)
End Function
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句