Ms access MS Access:根据日期字段计算下一季度的第一天

Ms access MS Access:根据日期字段计算下一季度的第一天,ms-access,Ms Access,在MS Access表中,我希望有一列根据另一列中的日期显示下一季度的第一天 例如,我有一个值为2018-02-04的Start\u Date列,我希望该列上的记录显示下一季度将从2018-04-01开始 我使用以下公式在Excel中很好地实现了这一点: =日期(年(M2),((月(M2)-1)/3)+1)*3)+1,1) 在Access中,我添加了选择计算字段日期/时间的列,但无法找到使其像Excel一样工作的方法 以前有没有人尝试过这个方法,或者知道可能的解决方案?谢谢您可以使用此功能: P

在MS Access表中,我希望有一列根据另一列中的日期显示下一季度的第一天

例如,我有一个值为
2018-02-04
Start\u Date
列,我希望该列上的记录显示下一季度将从
2018-04-01
开始

我使用以下公式在Excel中很好地实现了这一点:

=日期(年(M2),((月(M2)-1)/3)+1)*3)+1,1)

在Access中,我添加了选择
计算字段
日期/时间
的列,但无法找到使其像Excel一样工作的方法


以前有没有人尝试过这个方法,或者知道可能的解决方案?谢谢

您可以使用此功能:

Public Function DateNextQuarterFirst( _
  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

  DateNextQuarterFirst = DateSerial(Year(datDateThisQuarter), intThisMonth + 1, 1)

End Function
要在类似以下内容的SQL查询中使用它:

Select *, DateNextQuarterFirst([Start_Date]) As NextQuarterFirst
From YourTable

谢谢我试试看。这是宏吗?VBA?虽然我以前使用过Access,但我没有做过任何编程,所以从哪里开始都会有帮助。是的。创建一个新模块。将函数复制并粘贴到其中。进入菜单调试,编译-然后保存模块。谢谢。我在模块里找到的。只是,我在查询中不需要它,我需要它填充到我为它准备的列中。你不应该。存储计算值是不好的行为。否。如果您坚持,请使用函数创建更新查询以更新字段值。