當服務器篩選應用于 Microsoft Access 項目 (.adp) 中的窗體、報表,或者 Microsoft Access 項目 (.adp) 或數(shù)據(jù)庫 (.mdb) 中的數(shù)據(jù)訪問頁時,可以使用 ServerFilter 屬性指定要顯示的記錄子集。String 型,可讀寫。
expression.ServerFilter
expression 必需。返回“應用于”列表中的一個對象的表達式。
ServerFilter 屬性是一個由不帶 WHERE 關鍵字的 WHERE 子句組成的字符串表達式。例如,以下的 Visual Basic 代碼定義并應用了僅顯示美國用戶的篩選:
Me.ServerFilter = "Country = 'USA'"
Me.Refresh
設置該屬性的最簡單的方法是通過使用窗體或報表的屬性表。也可以通過使用 Visual Basic 在窗體或報表中設置該屬性。
若要設置 ServerFilter 屬性,必須首先執(zhí)行下列操作之一:
? | 在窗體的屬性表中設置屬性值。 |
? | 在 Visual Basic 中通過鍵入以下內容設置該屬性: |
Forms(0).ServerFilter = "fieldname = value"
注釋 設置 ServerFilter 屬性不會影響 ADO Filter 屬性。
可以使用 ServerFilter 屬性來保存篩選以備后用。篩選和在其中創(chuàng)建篩選的對象一起保存。當對象打開時,會自動加載篩選,但不自動應用篩選。
若要對窗體應用已保存的篩選,可以單擊工具欄上的“應用服務器篩選”、單擊“記錄”菜單上的“應用篩選/排序”、使用宏或 Visual Basic 將 ServerFilterByForm 屬性設置為 True。
“應用服務器篩選”按鈕指明 ServerFilter 和 ServerFilterByForm 屬性的狀態(tài)。除非應用了篩選,否則該按鈕一直保持禁用狀態(tài)。如果當前應用了一個現(xiàn)有篩選,則“應用服務器篩選”按鈕顯示為已按下狀態(tài)。
若要在窗體打開時自動應用篩選,請在窗體的 OnOpen 事件屬性設置中,指定一個使用 ApplyFilter 操作的宏,或指定一個使用 DoCmd 對象的 ApplyFilter 方法的事件過程。無論哪種情況,窗體都會在“按窗體服務器篩選”窗口中打開。
可以僅刪除服務器篩選,方法是:使用 Visual Basic 將 ServerFilterByForm 屬性設為 False,或在“按窗體服務器篩選”窗口中清除所有篩選條件,然后單擊“應用服務器篩選”。
當在窗體“設計”視圖中設置 ServerFilter 屬性時,Microsoft Access 不會驗證 SQL 表達式。如果 SQL 表達式無效,則當應用篩選時會發(fā)生錯誤。
注釋
? | 當新建對象時,該對象會繼承創(chuàng)建所用源表或查詢的 RecordSource、Filter、ServerFilter、OrderBy 以及 OrderByOn 屬性。 |