Access VBA教程:BuildCriteria方法

BuildCriteria方法返回一个经过语法分析的条件字符串,就像在查询设计网格、在“按窗体筛选”或“按窗体服务器筛选”模式中显示的那样。例如,可能需要基于用户提供的各种条件设置窗体的FilterServerFilter属性。可以使用 BuildCriteria方法为 Filter 或 ServerFilter属性构造字符串表达式参数。String 型。

expression.BuildCriteria(Field, FieldType, Expression)

expression   必需。返回“Applies To”列表中的一个对象的表达式。

Field  必需 String 型。字符串表达式,用于标识要为其定义条件的字段。

FieldType  必需 Integer 型。固有常量,指示字段的数据类型。若需可能的字段数据类型的列表,请参见 ADOType属性。

Expression  必需 String 型。字符串表达式,标识要进行语法分析的条件。

说明

BuildCriteria方法返回一个字符串。

BuildCriteria方法能够很容易地基于用户的输入为筛选构造条件。此方法分析 expression参数的方式,就像将表达式输入到查询设计网格、按窗体筛选或按窗体服务器筛选模式中时对表达式进行语法分析一样。

例如,用户基于“订单”表创建的查询可以将结果集限制在 1995 年 1 月 1 日以后的订单,方法是对“订购日期”字段设置条件。用户可在“订购日期”字段下的“条件”行中输入如下表达式:

>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方法可以构造一个具有与“订购日期”字段相关的多重条件的字符串:


strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95 and <5-1-95")

该示例返回如下条件字符串:

订购日期>#1/1/95# And 订购日期<#5/1/95#

但是,如果要构造一个引用多个字段的条件字符串,则必须分别创建各字符串,然后将它们连接起来。例如,要建立筛选条件,以显示 1995 年 1 月 1 日以后、运费少于 50 元的订单记录,就需要使用两次 BuildCriteria方法,并将两次的结果字符串连接起来。

VBA示例

下面的示例提示用户输入产品名称的头几个字母,然后基于用户的输入用 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

上页:Access VBA教程:ApplyTheme方法 下页:Access VBA教程:Circle方法

Access VBA教程:BuildCriteria方法

Access VBA教程:Circle方法 Access VBA教程:CloseConnection方法
Access VBA教程:CloseCurrentDatabase方法 Access VBA教程:CodeDb方法
Access VBA教程:CompactRepair方法 Access VBA教程:ConvertAccessProject方法
Access VBA教程:CopyDatabaseFile方法 Access VBA教程:CreateAccessProject方法
Access VBA教程:CreateControl方法 Access VBA教程:CreateDataAccessPage方法
Access VBA教程:CreateEventProc方法 Access VBA教程:CreateForm方法
Access VBA教程:AddFromFile方法 Access VBA教程:AddFromGuid方法
Access VBA教程:CreateGroupLevel方法 Access VBA教程:CreateNewDocument方法
Access VBA教程:CreateNewWorkgroupFile方法 Access VBA教程:CreateReport方法
Access VBA教程:CreateReportControl方法 Access VBA教程:CurrentDb方法
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号