Accessでお仕事 DMin、DMax 関数

DMin、DMax 関数

        

指定されたレコードのセット (定義域) に含まれる値の最小値または最大値を返します。Visual Basic、マクロ、クエリ式、または演算コントロールで使うことができます。

たとえば、レポートの演算コントロールで DMin 関数および DMax 関数を使って、特定の得意先からの受注金額の最低額と最高額を表示したり、クエリ式で DMin 関数を使って、最低の割引率より割引率が高い受注をすべて表示することができます。

構文

DMin(expr, domain[, criteria])

DMax(expr, domain[, criteria])

DMin 関数と DMax 関数には、次の引数があります。

引数 内容
expr 対象となるデータが含まれているフィールドを表す文字列式、またはフィールドの値の計算を表す式です。テーブルのフィールド名、フォームのコントロール、定数、組み込み関数、およびユーザー定義関数が指定できます。ただし、他の定義域集計関数や SQL 集計関数は指定できません。
domain 定義域を構成するレコードを指定する文字列式です。テーブル名またはクエリ名が指定できます。
criteria この引数は省略可能です。演算対象となるデータの範囲を指定する文字列式です。たとえば、SQL 式の WHERE 句を指定できます (語 WHERE は省略します)。引数 criteria を省略すると、定義域全体に対して expr が適用されます。

解説

DMin 関数および DMax 関数は、引数 criteria の範囲内の最小値または最大値を返します。expr が数値データであるときは数値を返します。expr が文字列データであるときは、現在のデータベースの並び順序に従って、先頭または末尾の文字列を返します。

DMin 関数および DMax 関数は、引数 expr で参照されるフィールドの Null 値を無視します。ただし、criteria に適合するレコードがないときや、domain にレコードが含まれないときは、DMin 関数および DMax 関数は Null 値を返します。

DMin 関数または DMax 関数をマクロ、モジュール、クエリ式、または演算コントロールのいずれで使用する場合も、正確な結果を得るために引数 criteria を慎重に設定してください。

DMin 関数または DMax 関数を使って、クエリの [抽出条件] セル、クエリの演算フィールドの式、または更新クエリの [レコードの更新] 行に抽出条件を指定できます。

メモ   DMinDMaxMin、または Max 関数は、集計クエリの演算フィールドの式で使うことができます。DMin および DMax 関数ではデータをグループ化する前に値が計算され、Min および Max 関数ではデータをグループ化してから値が計算されます。

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

=DMax("運送料", "受注", "出荷先都道府県 = '愛知県'")

domain の全レコードの最小値、最大値を計算する場合は、Min または Max 関数を使います。

モジュール、マクロ、またはフォームの演算コントロールで DMin および DMax 関数を使うと、基になるレコード ソースにないフィールドをフォームに表示することができます。

ヒント   DMin または DMax 関数を使って外部キー側のテーブルのフィールドの平均値を求めることもできますが、必要なフィールドをすべて含んだクエリを作成し、そのクエリに基づいてフォームやレポートを作成する方が効率的です。

メモ   domain のレコードを変更しても、保存されていない値は DMin または DMax 関数の演算に反映されません。変更した値を使って計算する場合は、計算前に、[レコード] メニューの [レコードの保存] をクリックするか、フォーカスを別のレコードに移動するか、または Update メソッドを使って変更を保存する必要があります。