我正在創建一個報告,向我顯示每個班次的人員。我有一個組合框,可以選擇一個特定的班次,或者留空白顯示所有班次。從組合框中選擇一個值將該文本鏡像到隱藏文本框,然後將其傳遞給查詢。現在,通過輪班篩選報告是一件容易的事情,現在我在牙齒上踢我的是如何設置它,以便如果我的Shift Filter框爲空以顯示像WHERE子句爲空的所有記錄?MS Access SQL - 我如何有條件地爲所有條件設置標準?
這裏是我的SQL代碼:
SELECT DISTINCTROW tblPersonnel.EmpID
,tblRank.Rank
,tblPersonnel.NameStr
,tblPersonnel.Shop
,qryShiftRosterSub.Narrative
,qryShiftRosterSubShift.CurrentShift
,qryShiftRosterSubShift.ShopName
,tblRank.ID
FROM (
(
tblPersonnel LEFT JOIN qryShiftRosterSubShift ON tblPersonnel.EmpID = qryShiftRosterSubShift.EmpID
) LEFT JOIN tblRank ON tblPersonnel.Rank = tblRank.ID
)
LEFT JOIN qryShiftRosterSub ON tblPersonnel.EmpID = qryShiftRosterSub.EmpID
WHERE (
((qryShiftRosterSubShift.CurrentShift) = IIf(Len([Forms] ! [frmNavMain] ! [NavigationSubform] ! [ShiftFilter]) = 0, 'Is Not Null', [Forms] ! [frmNavMain] ! [NavigationSubform] ! [ShiftFilter]))
AND ((tblPersonnel.DeleteFlag) = False)
);
我有一個鏈接在一起的幾個疑問,這是完成數據集前最後一個被髮送到報告。就像我說的,我可以很容易地向我展示特定的轉換,並通過清除CurrentShift中的條件,我可以讓它顯示所有記錄,但是如何根據我的過濾器中的內容在兩者之間切換框?
好了,所以與表達建成事情是這樣的,它的工作原理是真棒,但它本質上治療_Nz(... [ShiftFilter]) =「」_作爲通配符? – Chaosbydesign
我完全不明白你的意思是通配符。這只是一個替代條件。 '((qryShiftRoste .... = ... ftFilter])爲真,或者Nz([Forms]![frmNavMain]![NavigationSubform]![ShiftFilter])=「」)'爲真。 –