(Access) 的 Application.DMax 方法

使用 DMax 函式來判斷定義域) (指定記錄集中的最大值。

語法

運算式DMax (ExprDomainCriteria)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Expr 必要 字串 運算式,這會識別要尋找其最小值或最大值的欄位。 它可以是字串運算式,用以識別在資料表或查詢中的欄位,也可以是運算式,用以執行在該欄位中之資料的計算。 在 expr 中,您可以包含資料表的欄位名稱、表單上的控制項、常數或函數。 如果 expr 包含函式,它可以是內建或使用者定義,但不能是另一個網域匯總或 SQL 彙總函式。
網域 必要 String 字串運算式,識別構成網域的記錄集。 它可以是不需要參數之查詢的資料表名稱或查詢名稱。
Variant 用來限制在其上執行 DVarP 函數的資料範圍的選用的字串運算式。例如, criteria等於通常 WHERE 子句的 SQL 運算式,不含 where 位置。如果省略 criteria ,則 DVarP 函數會評估 expr針對整個網域。包含在 criteria任何欄位也必須是 domain; 中的欄位否則 DVarP 函數會傳回 Null 。 Variant 選用的字串運算式,用來限制要執行 DMax 函數的資料範圍。 例如,criteria 通常相當於 SQL 運算式中的 WHERE 子句,但不用加上 WHERE 這個字。 如果省略 criteria,則 DMax 函數會計算整個範圍的 expr。 criteria 中包含 的任何欄位也必須是網域中的字 ;否則, 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 引數包含了 OrderDate 文字方塊中的目前值。 文字方塊會系結至 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 支援與意見反應