IIF 不像 Access 2007 中的声明

Posted

技术标签:

【中文标题】IIF 不像 Access 2007 中的声明【英文标题】:IIF Not like statement in Access 2007 【发布时间】:2014-07-09 10:22:30 【问题描述】:

我正在尝试让这个 QC 显示文件失败的原因。我的 QC 工作得很好,但是当我试图给出原因时,除了无效的邮政编码之外,所有的工作都有效。如果 QC 因任何其他原因捕获并出错,则给出该原因以及无效的邮政编码。我已将我的推理逻辑放在下面,并指出了我认为存在问题的区域。

Reason: IIf([CNMC Import.Gf_Date] Is Null,"No gift date, ","") & IIf([CNMC Import.Gf_Amount] Is Null,"No gift amount, ","") &
IIf([CNMC Import.Gf_CnBio_Key_Indicator] Is Null,"No individual or organization indicator, ","") &
IIf([CNMC Import.Gf_CnAdrSal_Addressee] Is Null,"No Addressee, ","") &
IIf([CNMC Import.Gf_CnAdrSal_Salutation] Is Null,"No Salutation, ","") &
IIf([CNMC Import.Gf_CnAdrPrf_Addrline1] Is Null,"No street address, ","") &
IIf([CNMC Import.Gf_CnAdrPrf_City] Is Null,"No city, ","") &
IIf([CNMC Import.Gf_CnAdrPrf_State] Is Null,"No state, ","") &
IIf([CNMC Import.Gf_CnAdrPrf_ZIP] Is Null,"No Zip Code, ","") & 
**IIf(([CNMC Import.Gf_CnAdrPrf_ZIP] Not Like "#####-####" & [CNMC Import.Gf_CnAdrPrf_ZIP]) Not Like "#####","Invalid zip code, ","")**

【问题讨论】:

【参考方案1】:

试试这个(使用 IIf 2 次):

IIf([CNMC Import.Gf_CnAdrPrf_ZIP] Like "#####-####", ",", IIf([CNMC Import.Gf_CnAdrPrf_ZIP]) Like "#####", ",", "Invalid zip code")

【讨论】:

谢谢!正是我需要的【参考方案2】:

如果您尝试合并两个检查,则不能使用仅将字符串合并在一起的& 符号。

代替

IIf(([CNMC Import.Gf_CnAdrPrf_ZIP] Not Like "#####-####" & [CNMC Import.Gf_CnAdrPrf_ZIP]) Not Like "#####","Invalid zip code, ","")

试试

IIf([CNMC Import.Gf_CnAdrPrf_ZIP] Not Like "#####-####" AND [CNMC Import.Gf_CnAdrPrf_ZIP] Not Like "#####","Invalid zip code, ","")

【讨论】:

返回相同的结果

以上是关于IIF 不像 Access 2007 中的声明的主要内容,如果未能解决你的问题,请参考以下文章

Sum() 使用 IIF() 或 MS Access 中的 Where 子句

MS Access 查询条件 IIf true then <

Access使用记录

MS Access 2007 中的多个联合语句中的嵌套错误

Access IIF 到 SQL 语句的转换

Nz 和 IIF 的替代方案(为空)