分享方式:


DoCmd.ApplyFilter 方法 (存取)

ApplyFilter 方法會在 Visual Basic 中執行 ApplyFilter 動作。

語法

表達。ApplyFilter (FilterNameWhereConditionControlName)

expression 代表 DoCmd 物件的變數。

參數

名稱 必要/選用 資料類型 描述
FilterName 選用 Variant 字串運算式,是現用資料庫中篩選或查詢的有效名稱。 使用此方法套用伺服器篩選時, FilterName 引數必須是空白的。
WhereCondition 選用 Variant 字串運算式,是不含 WHERE 這個字的有效 SQL WHERE 子句。
控制項名稱 選用 Variant

註解

使用 ApplyFilter 動作將篩選器、查詢或 SQL WHERE 子句套用至資料表、表單或報表,以限制或排序資料表中的記錄,或表單或報表的基礎資料表或查詢中的記錄。 如果是報表,則僅可以在由報表的 [OnOpen] 事件屬性所指定的巨集中使用此巨集指令。

只有在套用伺服器過濾器時,才使用此動作來套用 SQL WHERE 子句。 伺服器篩選不能套用至預存程序的記錄來源。

注意事項

如果您已定義提供適當資料的篩選器,請使用 FilterName 引數。 使用 WhereCondition 引數直接輸入限制準則。 如果您同時使用這兩個引數,Microsoft Access 會將 WHERE 子句套用至篩選的結果。 您必須使用其中一個引數,或兩者都使用。

您可以將篩選或查詢套用至表單檢視或資料工作表檢視中的表單。

您套用的篩選條件和 WHERE 條件會成為表單的 Filter 屬性或報表的 ServerFilter 屬性的設定。

當您儲存資料表或表單時,Access 會儲存該物件中目前定義的任何篩選器,但下次開啟物件時不會自動套用篩選器, (雖然它會自動套用您在儲存物件之前套用至物件的任何排序,但) 。

如果您想要先開啟表單時自動套用篩選器,指定含有 ApplyFilter 巨集指令或 DoCmd 物件的 ApplyFilter 方法包含表單的 OnOpen 事件屬性設定為事件程序的巨集。 您也可以使用 openform 巨集或 OpenReport 巨集指令或其對應的方法來套用篩選器。 表格第一次開啟時自動套用篩選,您可以使用含有 OpenTable 巨集指令,後面緊接著 ApplyFilter 巨集指令的巨集開啟的資料表。

您必須包含至少其中一個兩個 ApplyFilter 方法引數。 如果您輸入的值為這兩個引數時, WhereCondition引數會套用至篩選。

WhereCondition 引數的最大長度為 32,768 個字元 (與 [巨集] 視窗中的WhereCondition 動作引數不同,其最大長度為 256 個字元)。

範例

下列範例使用 ApplyFilter 方法,只顯示 LastName 欄位中包含名稱 “King” 的記錄。

DoCmd.ApplyFilter , "LastName = 'King'"

下列範例示範如何使用 ApplyFilter 屬性來篩選選擇名為 tglFilter 的切換按鈕時顯示的記錄。

Private Sub tglFilter_Click()
    With tglFilter
        If .Value = True Then
            .Caption = "P/T"
            .StatusBarText = "only full-timers"
            DoCmd.ApplyFilter , "[Hours]=40"
        ElseIf .Value = False Then
            .Caption = "All"
            .StatusBarText = "only part-timers"
            DoCmd.ApplyFilter , "[Hours]<40"
        Else
            .Caption = "F/T"
            .StatusBarText = "all employees"
            DoCmd.ShowAllRecords
            .SetFocus 'to activate the button's statusbar-text
        End If
    End With
End Sub

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應