Application.DMax メソッド (Access)
DMax 関数を使用して、指定したレコードセット (ドメイン) の最大値を決定します。
構文
式。DMax (Expr、 Domain、 Criteria)
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 のサポートおよびフィードバックを参照してください。