Application.DMax メソッド (Access)

DMax 関数を使用して、指定したレコードセット (ドメイン) の最大値を決定します。

構文

DMax (ExprDomainCriteria)

expressionApplication オブジェクトを 表す変数。

パラメーター

名前 必須 / オプション データ型 説明
Expr 必須 文字列型 (String) 最小値または最大値を取得するフィールドを識別する式です。 テーブルまたはクエリのフィールドを識別する文字列式、または そのフィールドのデータを使用して計算を実行する式を指定できます。 expr では、テーブルのフィールド、フォームのコントロール、定数、または関数の名前を指定できます。 expr に関数が含まれている場合は、組み込み関数またはユーザー定義関数を使用できますが、別のドメイン集計関数や SQL 集計関数は使用できません。
ドメイン 必須 文字列型 (String) 定義域を構成するレコードセットを識別する文字列式。 パラメーターを必要としないクエリには、テーブル名またはクエリ名が指定できます。
Criteria 省略可能 バリアント型 DMax 関数の対象となるデータの範囲を指定する省略可能な文字列式です。 たとえば、 criteria は、多くの場合、SQL 式の WHERE 句と同じ役割を果たします (ただし WHERE という語は使用しません)。 引数 criteria を省略すると、 DMax は定義域全体に対して expr を適用します。 条件に含まれるフィールドは、ドメイン内のフィールドである必要もあります。それ以外の場合、DMax 関数は Null を返します。

戻り値

バリアント型

注釈

たとえば、レポートの計算コントロールで DMax 関数を使用して、特定の顧客の最大注文金額を表示できます。

DMax 関数は、条件を満たす最大値を返します。 expr が数値データを識別する場合、DMax 関数は数値を返します。 expr が文字列データのときは、アルファベット順で先頭または末尾の文字列を返します。

DMax 関数は、expr によって参照されるフィールドの Null 値を無視します。 ただし、 条件を満たすレコードがない場合、または ドメイン にレコードが含まれている場合、 DMax 関数は Null を返します

DMax 関数を使用して、クエリの [抽出条件] 行、クエリの計算フィールド式、または更新クエリの [Update To] 行で条件を指定します。

注:

集計クエリの計算フィールド式で DMax 関数または Max 関数を使用します。 DMax 関数を使用すると、データがグループ化される前に値が評価されます。 Max 関数を使用すると、フィールド式の値が評価される前にデータがグループ化されます。

抽出条件を指定してデータ範囲を制限する必要があるような場合は、演算コントロールで DMax 関数を使ってください。 たとえば、愛知県に出荷したときの最高運送料を表示するには、テキスト ボックスの " ControlSource /コントロールソース" プロパティに次のように設定します。

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

ドメイン内のすべてのレコードの最小値または最大値を単純に検索する場合は、Min 関数または Max 関数を使用します。

DMin 関数または DMax 関数を使って外部テーブルのフィールドから最小値または最大値を取得できますが、両方のテーブルの必要なフィールドが含まれるクエリを作成して、そのクエリを基にフォームまたはレポートを作成すると効率的です。

次の例では、愛知県に出荷された貨物の運送料の最大値と最小値を返します。 定義域は [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 関数が呼び出されるたびに、コントロールの現在の値を得ることができます。

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

次の例は、DMin 関数でさまざまな種類の抽出条件を使用する方法を示しています。

    ' ***************************
    ' 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 のサポートおよびフィードバックを参照してください。