MS Access查询条件IIf,然后为<

时间:2018-11-22 12:48:21

标签: ms-access ms-access-2007

我有一个符合以下条件的MS Access 2007查询-但这不起作用!

IIf([Forms]![CSL_CSD_Log]![Reason_Category]=1,<6,[Forms]![CSL_CSD_Log]![Reason_Category])

我无法弄清楚为什么TRUE结果不能为我提供所有<6的值。 如果我简单地将<6作为标准-效果很好。 本质上,除了ID为6的记录,我想显示所有记录。

我错过了什么吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

转到 SQL 视图并尝试 where 子句:

WHERE 
    IIF([Forms]![CSL_CSD_Log]![Reason_Category] = 1, [FieldToFilter] < 6, [FieldToFilter] = [Forms]![CSL_CSD_Log]![Reason_Category])

答案 1 :(得分:0)

感谢您的回复,他们将我带往了另一个方向,我设法使它能够按需工作。 它可能不是最漂亮的编码,但是:)

SELECT TBL_Descriptor_Values.Descriptor_ID, TBL_Descriptor_Values.Descriptor, 
TBL_Descriptor_Values.Descriptor_Category
FROM TBL_Descriptor_Values
WHERE (((IIf([Forms]![CSL_CSD_Log]![Reason_Category]<2,[TBL_Descriptor_Values].            
[Descriptor_Category]))<6) AND ((TBL_Descriptor_Values.Enabled)=-1)) OR 
(((TBL_Descriptor_Values.Enabled)=-1) AND ((IIf([Forms]![CSL_CSD_Log]! 
[Reason_Category]=4,[TBL_Descriptor_Values].[Descriptor_Category]))=4)) OR 
(((TBL_Descriptor_Values.Enabled)=-1) AND ((IIf([Forms]![CSL_CSD_Log]! 
[Reason_Category]=5,[TBL_Descriptor_Values].[Descriptor_Category]))=5)) OR 
(((TBL_Descriptor_Values.Enabled)=-1) AND ((IIf([Forms]![CSL_CSD_Log]! 
[Reason_Category]=6,[TBL_Descriptor_Values].[Descriptor_Category]))=6))
ORDER BY TBL_Descriptor_Values.Order;

再次感谢。