次の方法で共有


Application.DSum メソッド (Access)

DSum 関数を使用して、指定したレコードセット (ドメイン) 内の値のセットの合計を計算します。

構文

DSum (Expr,Domain, Criteria)

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

パラメーター

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

戻り値

バリアント型

注釈

たとえば、クエリの計算フィールド式で DSum 関数を使用して、特定の従業員が一定期間にわたって行った売上の合計を計算できます。 または、計算コントロールの DSum 関数を使用して、特定の製品の売上の実行中の合計を表示することもできます。

引数 criteria を満たすレコードがない場合、またはドメインにレコードが含まれている場合、DSum 関数は Null を返します

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

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

注:

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

フォームまたはレポートのレコード ソースにないフィールドの値のセットの合計を表示する必要がある場合は、 DSum 関数を使用できます。 たとえば、特定の製品に関する情報を表示するフォームがあるとします。 DSum 関数を使用して、計算されたコントロールでその製品の売上の実行合計を維持できます。

レポートのコントロールで実行合計を維持する必要がある場合は、基になるフィールドがレポートのレコード ソースに含まれている場合は、そのコントロールの RunningSum プロパティを使用できます。 フォームでは DSum 関数を使って合計を表示してください。

次の例では、英国に出荷された注文の [フレート ] フィールドの値を合計します。 定義域は [Orders] テーブルです。 criteria 引数は、結果のレコード セットを ShipCountry が UK と等しいレコードに制限します。

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

次の例では、2 つの抽出条件を使って合計を求めます。 文字列が連結されたときに、リテラル文字列が一重引用符で、日付がシャープ記号でそれぞれ囲まれるようにするため、文字列式に一重引用符 (') とシャープ記号 (#) が含まれていることに注意してください。

Dim curX As Currency 
curX = DSum("[Freight]", "Orders", _ 
    "[ShipCountry] = 'UK' AND [ShippedDate] > #1-1-95#")

次の例では、DSum 関数でさまざまな criteria の種類を使用する方法を示します。

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DSum("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DSum("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DSum("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DSum("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DSum("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DSum("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DSum("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。