DCount関数

 テーブルやクエリに含まれる列(フィールド)で、指定した列に記録されている値の個数を返します。Count関数に似ていますが、グループ化を併用せず利用でき、対象とするテーブルや行(レコード)も簡単に指定する(絞り込む)ことができるため扱いやすいというメリットがあります。

使用例

 例として右のようなテーブルを用います。


 クエリを作成し、次のような列を設けます。



数学点数カウント: DCount("数学点数","成績テーブル")


 データシートビューです。数学の点数の値の個数である9が得られています。
 Count関数の場合、他の列のそれぞれの行を表示しながら値の個数を表示するためにはサブクエリを使う必要がありましたが、DCount関数だと普通に関数だけで実現できます。


 上記テーブルに基づく実行結果の例をいくつか挙げてみます。

表記例出力例説明
DCount("数学点数","成績テーブル")9
DCount("英語点数","成績テーブル")7指定した列の値にNullが含まれる場合は、そのレコードが集計から除外されます
DCount(50,"成績テーブル")9直接数値を指定した場合、全レコードにその値があるものとして集計された個数が返されます。結果的にレコードの数そのものが返されます
DCount("数学点数","成績テーブル","受験番号>=3")7集計の対象となるレコードの条件を指定することが出来ます
DCount("英語点数","成績テーブル","受験番号>=3")5

書式

DCount(列名,レコードセット名[,条件])

 列名はダブルクォーテーション(")で囲む必要があります。
 レコードセットにはテーブルやレコードの名前をやはりダブルクォーテーションで囲って指定します。
 条件は対象となるレコードを絞り込むためのものですが、省略できます。

備考

 特にクエリでの使用において、グループ化を考慮する必要がなく、他のテーブルやクエリの値も容易に集計できますので使い勝手がよいですが、レコード数が多い場合などは実行に時間がかかる場合があります。
 クエリで利用する場合、そのテーブルやクエリをクエリデザイン画面上に表示しなくとも値を取得することが出来ます。

 なお、重要な応用として順位を求めるというものがあります。具体例については次の記事をご覧ください。

www.accessdbstudy.net