Application.DMax 方法 (Access)

使用 DMax 函数确定域) (指定记录集中的最大值。

语法

表达式DMax (Expr条件)

expression:表示 Application 对象的变量。

参数

名称 必需/可选 数据类型 说明
Expr 必需 字符串 表达式,用于标识要从中查找最小值或最大值的字段。 它可以是用来标识表或查询中字段的字符串表达式,也可以是对该字段中的数据执行计算的表达式。 在 expr 中,可以包含表中字段、窗体控件、常量或函数的名称。 如果 expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。
必需 字符串 字符串表达式,用于标识组成域的记录集。 可以是表名称或不需要参数的查询的查询名称。
Criteria 可选 Variant 可选的字符串表达式,用于限制作为 DMax 函数执行对象的数据的范围。 例如,criteria通常是相当于 SQL 表达式中的 WHERE 子句位置,但是不使用 WHERE一词。 如果省略 criteriaDMax 函数将针对整个域对 expr 求值。 条件中包含的任何字段也必须是域中的字段;否则,DMax 函数返回 Null

返回值

Variant

备注

例如,可以在报表的计算控件中使用 DMax 函数来显示特定客户的最大订单量。

DMax 函数返回满足条件的最大值。 如果 expr 标识数值数据, 则 DMax 函数将返回数值。 如果 expr 标识字符串数据,则返回字母顺序为第一个或最后一个的字符串。

DMax 函数将忽略 expr 引用的字段中的 Null 值。 但是,如果没有记录满足 条件,或者 不包含任何记录, 则 DMax 函数将返回 Null

使用 DMax 函数在查询的 Criteria 行、查询的计算字段表达式或更新查询的 “更新到” 行中指定条件。

注意

在总计查询的计算字段表达式中使用 DMax 函数或 Max 函数。 如果使用 DMax 函数,则会在对数据进行分组之前计算值。 如果使用 Max 函数,则会在计算字段表达式中的值之前对数据进行分组。

当需要指定条件来限制作为函数执行对象的数据的范围时,可以在计算控件中使用 DMax 函数。 例如,若要显示发往加州的订单的最高运费,请将文本框的 ControlSource 属性设置为以下表达式:

=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")

如果只想在 domain 中查找所有记录的最小值或最大值,请使用 MinMax 函数。

虽然可以使用 DMinDMax 函数在外表中的字段中查找最小值或最大值,但是,如果先创建含有所需的这两个表中的字段的查询,然后再将窗体或报表建立在这个查询的基础上,效率可能会更高。

示例

下面的示例返回运往英国的订单的“Freight”字段中的最小值和最大值。 域为“Orders”表。 criteria 参数将记录集的结果限制为“ShipCountry”等于 UK 的记录。

Dim curX As Currency 
Dim curY As Currency 
 
curX = DMin("[Freight]", "Orders", "[ShipCountry] = 'UK'") 
curY = DMax("[Freight]", "Orders", "[ShipCountry] = 'UK'")

在下一示例中,criteria 参数将包含名为“订购日期”的文本框的当前值。 文本框绑定到 Orders 表中的 OrderDate 字段。 请注意,对控件的引用不要包括在标识字符串的双引号 (") 中。 这样可以确保每次调用 DMax 函数时,Microsoft Access 都从控件中获得当前值。

Dim curX As Currency 
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _ 
    & Forms!Orders!OrderDate & "#")

以下示例演示如何对 DMax 函数使用各种类型的条件。

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DMax("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DMax("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DMax("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DMax("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DMax("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DMax("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DMax("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DMax("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DMax("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DMax("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。