テーブルやクエリに含まれる列(フィールド)で、指定した列に記録されている数値の合計値を返します。
Sum関数に似ていますが、グループ化を併用せず利用でき、対象とするテーブルや行(レコード)も簡単に指定する(絞り込む)ことができるため扱いやすいというメリットがあります。
使用例
数学点数合計: DSum("数学点数","成績テーブル")
データシートビューです。数学の点数の合計である565が得られています。
Sum関数の場合、他の列の各行の値を表示しつつ合計値を表示するためにはサブクエリを使う必要がありましたが、DSum関数だと関数だけで実現できます。
上記テーブルに基づく実行結果の例をいくつか挙げてみます。
表記例 | 出力例 | 説明 |
---|---|---|
DSum("数学点数","成績テーブル") | 565 | |
DSum("英語点数","成績テーブル") | 482 | 指定した列の値にNullが含まれる場合でも、数値の合計が返されます |
DSum(50,"成績テーブル") | 450 | 直接数値を指定した場合、全レコードにその値があるものとして求められた合計が返されます。結果的に指定した値とレコード数の積(この例の場合50×9=450)が返されます |
DSum("数学点数","成績テーブル","受験番号>=3") | 431 | 集計の対象となるレコードの条件を指定することが出来ます |
DSum("英語点数","成績テーブル","受験番号>=3") | 334 |
書式
DSum(列名,レコードセット名[,条件])
列名はダブルクォーテーション(")で囲む必要があります。
レコードセットにはテーブルやレコードの名前をやはりダブルクォーテーションで囲って指定します。
条件は対象となるレコードを絞り込むためのものですが、省略できます。
備考
特にクエリでの使用において、グループ化を考慮する必要がなく、他のテーブルやクエリの値も容易に抽出できますので使い勝手がよいですが、レコード数が多い場合などは実行に時間がかかる場合があります。クエリで利用する場合、そのテーブルやクエリをクエリデザイン画面上に表示しなくとも値を取得することが出来ます。