Application.BuildCriteria 方法 (Access)
BuildCriteria 方法返回一个分析的条件字符串,如它在查询设计网格中以“按窗体筛选”或“按窗体服务器筛选”模式显示的那样。 例如,您可以设置窗体的 筛选器 或 ServerFilter 属性根据用户的不同标准。 使用 BuildCriteria 方法为 Filter 或 ServerFilter 属性构造字符串表达式参数。 字符串 。
语法
表达式。BuildCriteria (Field、 FieldType、 Expression)
expression:表示 Application 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Field | 必需 | String | 要为其定义条件的字段。 |
FieldType | 必需 | Integer | 固有常量,指示字段的数据类型。 可以设置到 DAO DataTypeEnum 值中的一个。 |
Expression | 必需 | String | 一个字符串表达式,它标识要进行语法分析的条件。 |
返回值
String
备注
BuildCriteria 方法使您可以轻松地构造基于用户输入筛选条件。 它分析 表达式 参数的方式与在查询设计网格( 按窗体筛选 或 服务器按窗体筛选 模式)中输入表达式时分析表达式参数的方式相同。
例如,通过对 OrderDate 字段设置条件,对 Orders 表创建查询的用户可能会将结果集限制为在 1995 年 1 月 1 日之后下达的订单。 用户可能会在 OrderDate 字段下的“条件”行中输入如下表达式:
1-1-95
Microsoft Access 会自动对这个表达式进行语法分析并返回以下表达式:
#1/1/95#
BuildCriteria 方法提供相同的分析从 Visual Basic 代码。 例如,若要返回之前正确分析字符串,可以提供 BuildCriteria 方法的下列参数:
Dim strCriteria As String
strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95")
由于需要以正确分析的形式提供 Filter 属性的条件,因此可以使用 BuildCriteria 方法构造正确分析的字符串。
如果这些条件引用同一字段,请使用 BuildCriteria 方法构造具有多个条件的字符串。 例如,可以将 BuildCriteria 方法与以下参数一起使用,以构造具有与 OrderDate 字段相关的多个条件的字符串:
strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95 and <5-1-95")
此示例返回以下条件字符串:
OrderDate>#1/1/95# And OrderDate<#5/1/95#
但是,如果要构造一个引用多个字段的条件字符串,您必须创建各字符串并将它们连接起来。 例如,如果要构造一个筛选器以显示运费少于 50 美元的订单放在 1-1-95 后记录的条件,您需要使用两次 BuildCriteria 方法,并连接结果字符串的结果。
示例
下面的示例提示用户输入产品名称的前几个字母,然后用 BuildCriteria 方法来构造基于用户输入的条件字符串。 接下来,此过程提供此字符串作为参数的产品窗体的 Filter 属性。 最后,将 FilterOn 属性设置为应用的筛选器。
Sub SetFilter()
Dim frm As Form, strMsg As String
Dim strInput As String, strFilter As String
' Open Products form in Form view.
DoCmd.OpenForm "Products"
' Return Form object variable pointing to Products form.
Set frm = Forms!Products
strMsg = "Enter one or more letters of product name " _
& "followed by an asterisk."
' Prompt user for input.
strInput = InputBox(strMsg)
' Build criteria string.
strFilter = BuildCriteria("ProductName", dbText, strInput)
' Set Filter property to apply filter.
frm.Filter = strFilter
' Set FilterOn property; form now shows filtered records.
frm.FilterOn = True
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。