为了让我的生活更容易处理我的数据,我设置了3列相同的日期内容。第一个显示格式为mm / dd / yyyy,第二个格式为yyyy-mm,第三个格式为yyyy-q。 由于我的报道,我故意这样做了。有时我需要创建每月,每季度,每年等。通常我使用表单,我邀请用户选择开始和结束日期,然后单击按钮运行报告。此报告提取我在日期部分指定的查询,以在开始日期和结束日期之间提取所有信息。这次我想做同样的程序,而不是开始和结束日期 - 我希望用户选择他想要的季度,以便查询将提取有关本季度的所有信息。我可以在标准中指定什么来存档它?
答案 0 :(得分:1)
过滤
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