Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

Application.BuildCriteria 方法 (Access)

时 间:2022-02-19 09:17:19
作 者:杨雪   ID:42182  城市:南京
摘 要:BuildCriteria 方法返回一个经过分析的条件字符串,就像它在查询设计网格中一样,在"按窗体筛选"或"按窗体服务器筛选"模式下 显示。 例如,您可以设置窗体的 筛选器 或 ServerFilter 属性根据用户的不同标准。 BuildCriteria 方法可用于构造 Filter 或 ServerFilter 属性字符串表达式参数。 字符串 。
正 文:

语   法:
表达式.BuildCriteria (Field、 FieldType、 Expression)
expression:表示 Application 对象的变量。

参   数:
名称          必需/可选      数据类型       说明
Field          必需              String           要为其定义条件的字段。
FieldType    必需             Integer          固有常量,指示字段的数据类型。 可以设置到 DAO DataTypeEnum 值中的一个。
Expression  必需             String            一个字符串表达式,它标识要进行语法分析的条件。

返回值
String

备   注:
BuildCriteria 方法使您可以轻松地构造基于用户输入筛选条件。 它分析 表达式 参数的方式与在查询设计网格中按窗体筛选或按窗体服务器筛选模式输入表达式时 分析表达式 的方式相同。

例如,在"订单"表上创建查询的用户可能通过设置"订购日"字段的条件,将 结果集 限制为 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 
 
 ' 在form视图中打开Products表单. 
 DoCmd.OpenForm "Products" 
 ' 返回指向Products窗体的窗体对象变量. 
 Set frm = Forms!Products 
 strMsg = "输入产品名称的一个或多个字母 " _ 
 & "followed by an asterisk." 
 ' 提示用户输入. 
 strInput = InputBox(strMsg) 
 ' 建立标准的字符串. 
 strFilter = BuildCriteria("ProductName", dbText, strInput) 
 ' 设置Filter属性以应用Filter. 
 frm.Filter = strFilter 
 ' 设置FilterOn属性;表单现在显示过滤后的记录. 
 frm.FilterOn = True 
End Sub


Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助