2011-06-29 97 views
1

我有300+查詢從我的數據庫中獲取信息,應用時間條件,多個查詢。現在,在查詢中沒有指定時間條件,所以如果我想過濾一段時間,即#07/01/2009#和#08/01/2009#之間的所有時間條件,我必須手動進入每個查詢並添加此條件。的MS Access/SQL - 一次

我查詢所有的填充數據分爲4個主要報告。我所試圖做的是應用時間過濾標準像一塊上面來我所有的查詢一次,這樣我可以創建一個週報,還有彙總報告(這只是意味着沒有時間條件)。

有沒有簡單的方法拉我的報告會過濾所有我的查詢一次,和拉彙總報告,如果它的參數字段都是空白之前加一個參數?

+0

300保存的查詢?聽起來像是我的設計錯誤。作爲一般原則,標準應該在運行時應用,而不是在保存的查詢中應用。 –

回答

1

您可以使用一個引用查詢的WHERE子句中的窗體控件。所以,例如,如果我有一個名爲frmDatePicker的開放表單,其中包含名爲txtStartdate的文本框控件,則可以將該控件的值用作WHERE條件。

SELECT * 
FROM MyTable 
WHERE my_date_field >= Forms!frmDatePicker!txtStartDate; 

該方法可以工作,但我不知道它是否適合您的情況。您將不得不修改所有包含該日期條件的查詢。這可能是一次性更改。但是,如果您更改了表單和/或控件名稱,則需要再次修改查詢。 (所以儘量不要這麼做!)

編輯:如果你想允許用戶留下txtStartDate空白,以免在該日期過濾所有,嘗試一個WHERE子句這樣的:

WHERE 
    my_date_field >= Forms!frmDatePicker!txtStartDate 
    Or Forms!frmDatePicker!txtStartDate Is Null; 
+0

有沒有一種方法來設置默認值,其中,舉例來說,如果在用戶選擇報告的日期範圍文本字段是空白,查詢仍會把所有的記錄沒有時間條件? – jerry

+0

@Jerry你剛剛提到了默認值和沒有時間條件。對我而言,這些看起來像兩個不同的概念。所以我很困惑。看看我剛剛做的編輯是否有用。如果那不是你想要的,用不同的詞再次解釋你想要的。也許然後我會得到它。 :-) – HansUp

+0

這很完美,謝謝Hans。 – jerry

相關問題