Ms access 查询中嵌套IIf()表达式的计算结果出错

Ms access 查询中嵌套IIf()表达式的计算结果出错,ms-access,iif,Ms Access,Iif,我正试图根据一个记录的分类,将其分为三个组中的一个进行计算。所以,如果a,那么x;否则如果是b,那么是y;否则如果是c,那么是z。这就是我正在尝试的: Field:IIf([Rating]<6, DateAdd("m",3,[Rating/Comments Date]), IIf(5<[Rating]<8, DateAdd("m",6,[Rating/Comments Date]), DateAdd("y",1,[Rating/Comments Date

我正试图根据一个记录的分类,将其分为三个组中的一个进行计算。所以,如果a,那么x;否则如果是b,那么是y;否则如果是c,那么是z。这就是我正在尝试的:

Field:IIf([Rating]<6, 
DateAdd("m",3,[Rating/Comments Date]), 
IIf(5<[Rating]<8, 
    DateAdd("m",6,[Rating/Comments Date]), 
    DateAdd("y",1,[Rating/Comments Date])))
字段:IIf([评级]尝试将您的
5年份更改为
yyy
()

简化一下怎么样:

Field:IIf([Rating]<6, 
DateAdd("m",3,[Rating/Comments Date]), 
IIf([Rating]>8, DateAdd("yyyy",1,[Rating/Comments Date]),
    DateAdd("m",6,[Rating/Comments Date])))
字段:IIf([评级]8,日期添加(“yyyy”,1,[评级/评论日期]),
日期添加(“m”,6,[评级/评论日期])

转到表格的设计视图,检查[评级/评论日期]字段的格式。如果将日期存储为字符串,则DateAdd函数将失败。我还看到了对空值求值的错误。您的[Rating]或[Rating/Comments Date]字段中是否有空值?是的,这两个字段中都有空值。但是这个函数似乎仍然在数据集中中间的一个记录上工作,除了一个500的记录外,它仍然为所有的错误返回。这简直快把我逼疯了!不过,谢谢你帮我简化。你有一些样本数据吗?@Tony没有样本数据。我唯一能重现你的问题的方法是,我将[Rating]字段转换为以文本形式存储的数字。我建议你再看看你的桌子设计。