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