从 Access 查询中的布尔表达式接收错误输出

Recieve wrong out put from boolean expression in Access query

我有一个 Access 数据库,用于跟踪一项重要资格,该资格的截止日期取决于您的排名。我有一个查询,将根据他们到达命令的日期计算资格的开始日期,但我需要以下等式来告诉我如果他们没有获得资格,他们将拖欠的日期。如果这是重新资格,则首先有几个变量,如果是重新资格,则首先有几个变量,无论您有 12 个月的时间来完成。如果它是初始资格,那么如果您的等级是 E1、E2、E3 或 E4,那么您有 30 个月的时间来完成它。如果它是初始资格并且您是 E6、E7、E8 或 E9,那么您有 18 个月的时间。这就是我所拥有的,它适用于重新获得资格,但对于其他人来说,无论排名如何,它都会给你 30 个月的时间。

Dinq Date: IIf([CommandData]![Requal or Initial]="R",DateAdd("m",12,[Start Date]),IIf([CommandData]![Requal or Initial]="I" And [CommandData]![Rank]="E1" Or "E2" Or "E3" Or "E4",DateAdd("m",30,[Start Date]),IIf([CommandData]![Requal or Initial]="I" And [CommandData]![Rank]="E5" Or "E6" Or "E7" Or "E8" Or "E9",DateAdd("m",18,[Start Date]),"")))

您必须使用正确的语法 OR:

[CommandData]![Rank]="E1" Or [CommandData]![Rank]="E2" Or [CommandData]![Rank]="E3" Or [CommandData]![Rank]="E4"

或者,更短的:

[CommandData]![Rank] In ("E1", "E2", "E3", "E4")