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

问题描述 投票:0回答:1

我有一个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]),"")))
ms-access boolean iif dateadd
1个回答
0
投票

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

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

或者,更短:

[CommandData]![Rank] In ("E1", "E2", "E3", "E4")
© www.soinside.com 2019 - 2024. All rights reserved.