DoCmd.SetFilter method (Access)

Use the SetFilter method to apply a filter to the records in the active datasheet, form, report, or table.


expression.SetFilter (FilterName, WhereCondition, ControlName)

expression A variable that represents a DoCmd object.


Name Required/Optional Data type Description
FilterName Optional Variant If provided, the name of a query or of a filter saved as a query. This argument or the WhereCondition argument is required.
WhereCondition Optional Variant If provided, a SQL WHERE clause that restricts the records in the datasheet, form, report, or table.
ControlName Optional Variant If provided, the name of the control that corresponds to the subform or subreport to be filtered. If empty, the current object is filtered.


When you run this method, the filter is applied to the table, form, report or datasheet (for example, query result) that is active and has the focus.

The Filter property of the active object is used to save the WhereCondition argument and apply it at a later time. Filters are saved with the objects in which they are created. They are automatically loaded when the object is opened, but they are not automatically applied.

To automatically apply a filter when the object is opened, set the FilterOnLoad property to True.


The following code example filters the active object so that it displays only records that begin with "NWTB".

DoCmd.SetFilter WhereCondition:="[Product Code] Like ""NWTB*"""

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.