2011-01-11 50 views
0

從文本框參數最終目的是讓待過濾的形式,(也有上形成一個刷新按鈕)。它現在對我來說工作得很好,但是我之前沒有看到過使用參數查詢。我知道我可以使用其他方法(訪問標準功能,使用vba使用Filter/FilterOn屬性),但從技術上講,有沒有這樣做的理由?形式,採用這種形式

回答

0

我不知道我理解你的問題,但是參數化表單的SQL對形式意味着你赴湯蹈火,以顯示數據以外的任何參考過濾標準控件在所有參數化字段上被過濾。

查詢異議對我來說沒有任何意義,因爲您必須根據控件中的值過濾表單,除非您正在編寫記錄源而不是重新查詢它。如果您要更改表單的記錄源,那麼我認爲沒有理由使用參數來引用用於輸入條件的表單控件。

設置窗體的Filter屬性是迄今爲止最簡單的方法,但它假設你已經開始使用一個記錄源來顯示你將要選擇的所有記錄,這可能是低效的,或者只是一個糟糕的設計。

所以,基本上,我的建議是在所有不使用參數,但動態地編寫SQL,每次設置窗體的記錄。

順便,爲了避免空白表的顯示,您可以使用TOP 1查詢這樣的伎倆:

SELECT TOP 1 Null As Field1, Null As Field2 
    FROM MySmallestTable 

這將有空值的一個記錄中的所有字段,以便您綁定的控件不會顯示錯誤消息。它也使表單不可編輯,而無需更改表單的編輯屬性。你說的做

+0

該DB是爲一個療程,我限制使用的功能是什麼已列入類,獲得最大的收益,否則,我會(並有無數次):-) –

0

好吧,我想你可以寫一個VBA函數基於表單中的未綁定文本框數據庫重新查詢,雖然過濾器是出於性能的考慮了一下更適合。我可以想到,你可能不想重新查詢的唯一原因是,如果你正在一個網絡驅動器上的MDB文件中提取大量併發用戶的慢速網絡數據;只是因爲表演會受到嚴重打擊。我可能是錯的