繁体   English   中英

Axess表达式嵌套的Iif()语句语法错误

[英]Axess expression nested Iif() statement syntax error

我正在Access中工作,需要根据标志指定某些记录,具体取决于记录是在窗体的日期窗口中生成还是订购的。 我对此表达式(在使用设计视图执行此操作)时遇到麻烦,它的开始是这样的:

Designation: 
IIf([InvoiceList.PurchaseOrderDt] Between [Forms]![Date Range]![StartDate] 
    And [Forms]![Date Range]![EndDate], 
    "New Backlog", 
    IIf(([InvoiceList.PurchaseOrderDate] < [Forms]![Date Range]![StartDate]) 
        AND (([InvoiceList.FinalBillDate]  Is Null) 
        OR ([InvoiceList.FinalBillDate] > [Forms]![Date Range]![StartDate])),
        “Old Backlog”,
     ””)
   )

我收到语法错误(“您输入的表达式语法无效,您可能输入的操作数没有运算符”),第二条语句突出显示了Backlog" 。因为我对访问和SQL有点陌生,所以我决定进一步嵌套IIF语句,并摆脱AND和OR运算符,因为我不确定在Access / SQL中如何处理它们,结果变成了:

Designation: 
IIf([InvoiceList.PurchaseOrderDt] Between [Forms]![Date Range]![StartDate] 
    And [Forms]![Date Range]![EndDate],
    "New Backlog", 
    IIf([InvoiceList.PurchaseOrderDt] < [Forms]![Date Range]![StartDate],
        IIf([InvoiceList.FinalBillDate]  Is Null,
           “Old Backlog”, 
            IIf( [InvoiceList.FinalBillDate] > [Forms]![Date Range]![StartDate],
                “Old Backlog”,
                ””)
           )
       ,””)
    )

但是我有同样的错误。 从第二个代码可能得到的见解是,第一个“ Old Backlog”的“ Backlog"仍被突出显示,而不是第二个,这使我认为使用“ Is Null”可能是一个问题,但是将表达式更改为IsNull([InvoiceList.FinalBillDate])没有更改问题。

还值得注意的是,删除代码中突出显示的部分可以消除错误,但是我需要第二个名称。

我最后的想法是,这与"我正在使用。 "我很期待听到您的意见。

我还尝试格式化我的代码,以使其易于阅读。

在我看来,双引号很麻烦。 访问尤其如此。 删除“旧积压”并重新输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM