私は、シフトごとに担当者を表示するレポートを設定しています。私は、特定のシフトを選択することができるコンボボックスを持つフォームを持っているか、それを空白のままにしてすべてのシフトを表示します。コンボボックスから値を選択すると、そのテキストが非表示のテキストボックスに反映され、そのテキストボックスがクエリに渡されます。今、シフトでフィルタリングするレポートを取得するのが簡単な部分です。歯の中で私を蹴っているのは、WHERE句が空白の場合のようにすべてのレコードを表示するためにShift Filterボックスが空の場合、 ?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)
);
私は一緒に連鎖されているいくつかのクエリを持っているし、これが完成したデータセット前の最後の1がレポートに送信されています。私が言ったように、私はそれを私にちょうど特定のシフトを簡単に示すために得ることができ、CurrentShiftからの基準をクリアすることによって、すべてのレコードを表示することができますが、私はそれをフィルタに入っているものに基づいてボックス?
OK(... [ShiftFilter]) = "" _をワイルドカードとして使用しますか? – Chaosbydesign
ワイルドカードの意味を正確に理解できません。それは単なる代替条件です。 '((qryShiftRoste .... = ..... ftFilter))'が真の場合、OR 'Nz([Forms]![frmNavMain]![NavigationSubform]![ShiftFilter])=" ")'は真です。 –