HOME > 即効テクニック > AccessVBA > データ操作 > レコードの最大値・最小値を取得する

即効テクニック

データ操作

レコードの最大値・最小値を取得する

(Access)
DMin関数、DMax関数は、指定されたレコードのセット(定義域)に含まれる値の最小値または最大値を返します。
サンプルプロシージャでは、テーブル「顧客マスタ」のフィールド「顧客番号」の最小値と最大値を取得して、メッセージボックスに表示しています。

Sub Sample()
    Dim myMax As Variant
    Dim myMin As Variant
    
    myMin = DMin("顧客番号", "顧客マスタ")
    MsgBox myMin

    myMax = DMax("顧客番号", "顧客マスタ")
    MsgBox myMax
    
End Sub

構文は次のとおりです。
<構文> DMin(expr, domain[, criteria])
     DMax(expr, domain[, criteria])

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

引数criteriaを指定すると、次のサンプルプロシージャのように、フィールド「住所」が「東京都」のデータの中での最小値と最大値を取得できます。

Sub Sample()
    Dim myMax As Variant
    Dim myMin As Variant
    
    myMax = DMax("顧客番号", "顧客マスタ", "住所 = '東京都'")
    MsgBox myMax
    
    myMin = DMin("顧客番号", "顧客マスタ", "住所 = '東京都'")
    MsgBox myMin

End Sub

引数criteriaに適合するレコードがないときや、引数domainにレコードが含まれないときは、DMin関数およびDMax関数はNull値を返します。