我是Microsoft Access编程的新手。
我想检查一个日期字段,如果是
则返回我制作了以下代码:(使用表达式构建器)
Expr_Timeout:
IIf([Report_DateTime]=Date(),"Today","")+
IIf([Report_DateTime]=Date()-1,"Yesterday","")+
IIf([Report_DateTime]<Date()-7,"Last Week","")+
IIf([Report_DateTime]<Date()-30,"Last Month","")+
IIf([Report_DateTime]<Date()-31,"Old","")
有更好的方法吗?其他语言有一个CASE语句,但我不知道如何在Access中执行此操作。我正在使用Access 2013。
感谢。
答案 0 :(得分:3)
您可以在Access SQL查询和VBA代码中使用Switch()
函数(参考:here)。
示例:
Switch([Report_DateTime]=Date(), "Today", [Report_DateTime]=Date()-1, "Yesterday", [Report_DateTime]<Date()-1, "Before Yesterday")
VBA中还有一个Select Case
构造(参考:here)。
示例:
Select Case [Report_DateTime]
Case Date()
status = "Today"
Case Date() - 1
status = "Yesterday"
Case < (Date() - 1)
status = "Before Yesterday"
End Select
答案 1 :(得分:2)
感谢Gord Thompson给我一个线索,这就是我想要的,它的工作完美:
expr1: Switch([date_]=Date(),"today",
[date_]=Date()-1,"yesterday",
[date_]>Date()-7,"week ago")