我正在尝试在查询中添加自定义字段。我的另外两个已经顺利完成,但我一生都无法弄清楚我缺少什么来让这个工作。我已经尝试了数十种不同的代码排列。如果该列中有任何内容,我尝试采用 DateDiff("d",Date(),[REV_PRM_DT]) ,如果没有,则采用 DateDiff("d",Date(),[X65-SCHATS]) 。需要注意的是,如果 [Green_Date] 中有任何内容,则应返回“”,如果 [REV_PRM_DT] 中的值为 01/01/2055,则应返回“”(我们使用它作为填充符以使其不显示)其他地方)。
我尝试过的一些例子是:
ATS 的天数:iif(([REV_PRM_DT]<>"01/01/2055") and ([Green_Date] is null),iif(([REV_PRM_DT] is not null),DateDiff("d",Date() ,[REV_PRM_DT]),DateDiff("d",Date(),[X65-SCHATS])),"")
Days_to_ATS:iif(([REV_PRM_DT]<>"01/01/2055") and ([Green_Date] 为空),iif(([REV_PRM_DT] 不为空),DateDiff("d",Date(),[ REV_PRM_DT]),DateDiff("d",Date(),[X65-SCHATS])),"")
Days_to_ATS:iif([Green_Date] 为 null,iif([REV_PRM_DT]="01/01/2055","",iif([REV_PRM_DT]="",DateDiff("d",Date(),[X65- SCHATS]),DateDiff("d",Date(),[REV_PRM_DT]))),"")
我认为这些字段是日期/时间数据类型。不要退货
""
,退货Null
。使用 # 代替引号作为日期分隔符。括号数量超出需要。
IIf([REV_PRM_DT] <> #01/01/2055# AND [Green_Date] Is Null,
IIf([REV_PRM_DT] Not Is Null, DateDiff("d", Date(), [REV_PRM_DT]), DateDiff("d", Date(), [X65-SCHATS])),
Null)
或
IIf([REV_PRM_DT] <> #01/01/2055# AND [Green_Date] Is Null,
DateDiff("d", Date(), IIf([REV_PRM_DT] Not Is Null, [REV_PRM_DT], [X65-SCHATS])),
Null)
Is Null
是 SQL 运算符。 Nz()
是VBA函数,但可以在Access查询中调用。
IIf([REV_PRM_DT] <> #01/01/2055# AND [Green_Date] Is Null,
DateDiff("d", Date(), Nz([REV_PRM_DT], [X65-SCHATS])),
Null)