我被交给了别人之前建造的旧的Access数据库。我在现有查询中添加了一个字段,但是当我去保存时,它在我从未触及的其他字段上引发了错误。错误消息:垂直条的使用无效。这是它不喜欢的表达方式,但不知怎的,它们能够在过去保存它:
DaysOpened:
IIf([re_close_date] Is Null|IIf([close_date] Is Null|Date()-[date_reported]|Date()-[reopen_dt]))
我已经尝试过切换到逗号和&,但是如果有人可以提供帮助,却无法获得正确的组合重建吗?基本上......如果re_close_date为null,请检查close_date是否为null。如果两者都为是,则记录必须仍为打开,因此我们需要通过获取当前日期并减去date_reported或当前日期来计算DaysOpened - 如果重新打开记录,则重新打开_dt。感谢。
答案 0 :(得分:0)
替换这些条以获得有效的语法:
IIf([re_close_date] Is Null, IIf([close_date] Is Null, Date()-[date_reported], Date()-[reopen_dt]))
或者也许:
IIf([re_close_date] Is Null, IIf([close_date] Is Null, Date()-[date_reported], Date()-[reopen_dt]), 0)
答案 1 :(得分:0)
最后通过将List Separator的区域设置从Vertical Bar切换到逗号并切换到IsNull()函数来解决它。以下是最终奏效的内容:
DaysOpened:IIf(IsNull([Re_Close_Date]),IIF(IsNull([Close_Date]),Date() - [Date_Reported],Date() - [Reopen_dt]),0)
令人沮丧的是,即使您使用表达式生成器,它也会告诉您对IIf语句使用垂直条(而不是逗号),但是一旦您尝试运行它就会抛出垂直条错误消息。要解决此问题,请按如下方式在Windows中更改操作系统设置:
控制面板>地区&语言>点击格式标签下的其他设置>从|更改列表分隔符值至 ,。单击“应用”,然后在表达式中将逗号垂直条替换为逗号。