在IIF声明中格式化日期

时间:2018-02-15 15:38:04

标签: sql ms-access format

我正在通过使用访问数据库来自动化报告,并且在尝试格式化日期以在IIF语句中包含文本时遇到了问题。我想要做的是,当一个日期超过今天的日期,然后将日期推迟到下个月的第一天,然后按财政年度和季度格式化日期,但在我们公司的格式中,例如“IFX” FY18_Q2" 。我遇到的问题是格式正在运行但是季度不正确,例如它显示IFX FY18_Q1,它应该是IFX FY18_Q2。以下是声明:

IIF(Date1<=DATE( ), "IFX FY"&FORMAT((DateSerial(Year(DateAdd("m", 1,DATE( ))), Month(DateAdd("m", 1, DATE( ))), 1)), "YY"&"_"&"\Qq"), Date1))

有什么我做错了或者更简单的方法来实现这个目标吗?

由于

1 个答案:

答案 0 :(得分:0)

分步进行:

If Date1 < Date Then
     Date1 = DateSerial(Year(Date), Month(Date) + 1, 1)
End If
' Offset date to fit fiscal year. Here three months.
Date1 = DateAdd("m", 3, Date1)

' Format text date.
IFXDate = "IFX FY" & Format(Date1, "yy_\Qq")

对于不可读的单行,可能是:

="IFX FY" & Format(DateAdd("m", 3, IIf(Date1 < Date(), DateSerial(Year(Date), Month(Date) + 1, 1), Date())), "yy_\Qq")