DMax メソッド (Access)Application.DMax method (Access)

DMax関数を使用すると、指定されたレコードのセット (定義域) に含まれる最大値を調べることができます。You can use the DMax function to determine the maximum value in a specified set of records (a domain).


DMax(ExprDomainCriteria)expression.DMax (Expr, Domain, Criteria)

expression**Application** オブジェクトを 表す変数。expression A variable that represents an Application object.


名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
ExprExpr 必須Required StringString 最小値または最大値を取得するフィールドを識別する式です。An expression that identifies the field for which you want to find the minimum or maximum value. テーブルまたはクエリのフィールドを識別する文字列式、または そのフィールドのデータを使用して計算を実行する式を指定できます。It can be a string expression identifying a field in a table or query, or it can be an expression that performs calculation on data in that field. expr では、テーブルのフィールド、フォームのコントロール、定数、または関数の名前を指定できます。In expr, you can include the name of a field in a table, a control on a form, a constant, or a function. _Expr_に関数を指定する場合は、組み込み関数またはユーザー定義関数のどちらも指定できますが、他の定義域集計関数または SQL 集計関数は使用できません。If expr includes a function, it can be either built-in or user-defined, but not another domain aggregate or SQL aggregate function.
ドメインDomain 必須Required StringString 定義域を構成するレコードセットを識別する文字列式。A string expression identifying the set of records that constitutes the domain. パラメーターを必要としないクエリには、テーブル名またはクエリ名が指定できます。It can be a table name or a query name for a query that does not require a parameter.
CriteriaCriteria 省略可能Optional VariantVariant DMax 関数の対象となるデータの範囲を指定する省略可能な文字列式です。An optional string expression used to restrict the range of data on which the DMax function is performed. たとえば、 criteria は、多くの場合、SQL 式の WHERE 句と同じ役割を果たします (ただし WHERE という語は使用しません)。For example, criteria is often equivalent to the WHERE clause in an SQL expression, without the word WHERE. 引数 criteria を省略すると、 DMax は定義域全体に対して expr を適用します。If criteria is omitted, the DMax function evaluates expr against the entire domain. _抽出条件_に含まれているフィールドは、_ドメイン_のフィールドでもある必要があります。それ以外の場合、 DMax関数はNull値を返します。Any field that is included in criteria must also be a field in domain; otherwise, the DMax function returns a Null.

戻り値Return value



たとえば、レポートの演算コントロールでDMax関数を使用すると、特定の得意先の最大受注額を表示することができます。For example, you could use the DMax function in calculated controls on a report to display the largest order amount for a particular customer.

DMax関数は、_条件_を満たす最大値を返します。The DMax function returns the maximum value that satisfies criteria. _引数 expr_が数値データを識別する場合、 DMax関数は数値を返します。If expr identifies numeric data, the DMax function returns numeric values. expr が文字列データのときは、アルファベット順で先頭または末尾の文字列を返します。If expr identifies string data, they return the string that is first or last alphabetically.

DMax関数は、 _expr_で参照されるフィールドのNull値を無視します。The DMax function ignores Null values in the field referenced by expr. ただし、_条件_を満たすレコードがない場合や、 _domain_にレコードが含まれていない場合は、 DMax関数はNull値を返します。However, if no record satisfies criteria, or if domain contains no records, the DMax function returns a Null.

DMax関数を使って、クエリの [抽出条件] 行、クエリの演算フィールドの式、または更新クエリの [レコードの更新] 行に抽出条件を指定できます。You can use the DMax function to specify criteria in the Criteria row of a query, in a calculated field expression in a query, or in the Update To row of an update query.


集計クエリの演算フィールドの式では、 DMax関数またはMax関数を使用できます。You can use the DMax function or the Max function in a calculated field expression of a totals query. DMax関数を使用すると、データをグループ化する前に値が評価されます。If you use the DMax function, values are evaluated before the data is grouped. Max関数を使用すると、フィールド式の値が評価される前に、データがグループ化されます。If you use the Max function, the data is grouped before values in the field expression are evaluated.

抽出条件を指定してデータ範囲を制限する必要があるような場合は、演算コントロールで DMax 関数を使ってください。Use the DMax function in a calculated control when you need to specify criteria to restrict the range of data on which the function is performed. たとえば、愛知県に出荷したときの最高運送料を表示するには、テキスト ボックスの " ControlSource /コントロールソース" プロパティに次のように設定します。For example, to display the maximum freight charged for an order shipped to California, set the ControlSource property of a text box to the following expression:

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

_Domain_のすべてのレコードの最小値または最大値を検索するだけの場合は、 Min関数またはMax関数を使用します。If you simply want to find the minimum or maximum value of all records in domain, use the Min or Max function.

DMin 関数または DMax 関数を使って外部テーブルのフィールドから最小値または最大値を取得できますが、両方のテーブルの必要なフィールドが含まれるクエリを作成して、そのクエリを基にフォームまたはレポートを作成すると効率的です。Although you can use the DMin or DMax function to find the minimum or maximum value from a field in a foreign table, it may be more efficient to create a query that contains the fields that you need from both tables and base your form or report on that query.


次の例では、愛知県に出荷された貨物の運送料の最大値と最小値を返します。The following example returns the lowest and highest values from the Freight field for orders shipped to the United Kingdom. 定義域は [Orders] テーブルです。The domain is an Orders table. 引数 criteria は、[ShipCountry] が UK のレコードのセットを抽出するよう指定されています。The criteria argument restricts the resulting set of records to those for which ShipCountry equals UK.

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

次の例では、引数 criteria に [受注日] というテキスト ボックスの現在の値が指定されています。In the next example, the criteria argument includes the current value of a text box called OrderDate. このテキストボックスは、[受注] テーブルの [受注日] フィールドに連結されています。The text box is bound to an OrderDate field in an Orders table. コントロールへの参照が、文字列を示す二重引用符 (") に囲まれていないことに注意してください。Note that the reference to the control isn't included in the double quotation marks (") that denote the strings. DMax 関数が呼び出されるたびに、コントロールの現在の値を得ることができます。This ensures that each time the DMax function is called, Microsoft Access obtains the current value from the control.

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

次の例は、DMin 関数でさまざまな種類の抽出条件を使用する方法を示しています。The following examples show how to use various types of criteria with the DMax function.

    ' ***************************
    ' 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")
    ' ***************************

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.