当服务器筛选应用于 Microsoft Access 项目 (.adp) 中的窗体、报表,或者 Microsoft Access 项目 (.adp) 或数据库 (.mdb) 中的数据访问页时,可以使用 ServerFilter 属性指定要显示的记录子集。String 型,可读写。
expression.ServerFilter
expression 必需。返回“应用于”列表中的一个对象的表达式。
ServerFilter 属性是一个由不带 WHERE 关键字的 WHERE 子句组成的字符串表达式。例如,以下的 Visual Basic 代码定义并应用了仅显示美国用户的筛选:
Me.ServerFilter = "Country = 'USA'"
Me.Refresh
设置该属性的最简单的方法是通过使用窗体或报表的属性表。也可以通过使用 Visual Basic 在窗体或报表中设置该属性。
若要设置 ServerFilter 属性,必须首先执行下列操作之一:
? | 在窗体的属性表中设置属性值。 |
? | 在 Visual Basic 中通过键入以下内容设置该属性: |
Forms(0).ServerFilter = "fieldname = value"
注释 设置 ServerFilter 属性不会影响 ADO Filter 属性。
可以使用 ServerFilter 属性来保存筛选以备后用。筛选和在其中创建筛选的对象一起保存。当对象打开时,会自动加载筛选,但不自动应用筛选。
若要对窗体应用已保存的筛选,可以单击工具栏上的“应用服务器筛选”、单击“记录”菜单上的“应用筛选/排序”、使用宏或 Visual Basic 将 ServerFilterByForm 属性设置为 True。
“应用服务器筛选”按钮指明 ServerFilter 和 ServerFilterByForm 属性的状态。除非应用了筛选,否则该按钮一直保持禁用状态。如果当前应用了一个现有筛选,则“应用服务器筛选”按钮显示为已按下状态。
若要在窗体打开时自动应用筛选,请在窗体的 OnOpen 事件属性设置中,指定一个使用 ApplyFilter 操作的宏,或指定一个使用 DoCmd 对象的 ApplyFilter 方法的事件过程。无论哪种情况,窗体都会在“按窗体服务器筛选”窗口中打开。
可以仅删除服务器筛选,方法是:使用 Visual Basic 将 ServerFilterByForm 属性设为 False,或在“按窗体服务器筛选”窗口中清除所有筛选条件,然后单击“应用服务器筛选”。
当在窗体“设计”视图中设置 ServerFilter 属性时,Microsoft Access 不会验证 SQL 表达式。如果 SQL 表达式无效,则当应用筛选时会发生错误。
注释
? | 当新建对象时,该对象会继承创建所用源表或查询的 RecordSource、Filter、ServerFilter、OrderBy 以及 OrderByOn 属性。 |