0
我在Access中工作,我需要用標誌指定某些記錄,具體取決於記錄是否已在表單中的日期窗口內生成或排序。我有這個表達(我使用設計視圖做到這一點)的麻煩,開始是這樣的:Axess表達式嵌套Iif()語句語法錯誤
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」,
」」)
)
,」」)
)
但我有同樣的錯誤。從第二個代碼可以看出,第一個「舊積壓」的Backlog"
仍然是突出顯示的,而不是第二個。這導致我認爲這可能是使用'空'的問題,但將該表達式更改爲IsNull([InvoiceList.FinalBillDate])
並未改變問題。
還值得注意的是,刪除突出顯示的部分代碼擺脫了錯誤,但我需要這第二個指定。
我最後的想法是它與我正在使用的"
有關。我期待聽到您的意見。
我也試着格式化我的代碼,以便閱讀。
上帝該死,就是這樣 – GMoany