我有一個查詢過濾記錄基於日期(開始日期和結束日期)選擇在以前的形式。我希望查詢過濾特定的日期範圍,或者如果字段留空,則輸出所有記錄。查詢過濾特定數據或沒有過濾器如果空白
我不熟悉SQL。有沒有辦法添加if-then語句?
如果需要,我可以使用vba,但如果可能的話,想使用Access GUI。
我有一個查詢過濾記錄基於日期(開始日期和結束日期)選擇在以前的形式。我希望查詢過濾特定的日期範圍,或者如果字段留空,則輸出所有記錄。查詢過濾特定數據或沒有過濾器如果空白
我不熟悉SQL。有沒有辦法添加if-then語句?
如果需要,我可以使用vba,但如果可能的話,想使用Access GUI。
如果您有一個參數,用於WHERE子句(查詢生成器中的條件),並且您希望顯示所有記錄(如果參數爲空),則只需將此參數添加爲新列,並在此條件下指示Is Null
或者,最好添加一個表達式爲Nz([MyParam],"") and in Condition area in
OR row add
「」。不幸的是在查詢生成器這種結構可能是,如果你有幾個參數,在SQL它看起來要簡單得多,例如在你的情況下,它會是這樣相當複雜:
WHERE (MyDate >= [paramDateStart] and MyDate <= [paramDateEnd])
OR (Nz([paramDateStart],"")="" AND Nz([paramDateEnd],"") = "")
有時簡單編輯SQL,然後切換到設計視圖
您可以使用這些標準起始日期和結束日期分別以他們在表格上,搜索字段的情況下,一個(或兩個)比較,以自己爲空(NULL):
>=Nz([Forms]![YourForm]![FromDate], [StartDate])
<=Nz([Forms]![YourForm]![ToDate], [EndDate])
如果您只是需要查看您的記錄,則可以使用VBA代碼進行過濾。理解如何使用而不是使用SQL更容易。您可以查看https://msdn.microsoft.com/en-us/library/office/ff194672.aspx關於如何使用過濾器屬性 – SunRay