ACCESS DCount関数でレコード数を集計する方法

ACCESSのテーブルの中から、条件に合ったレコードの件数を計算したい時がありますよね。

こういった時に役に立つのがDCount関数です。
EXCELでも同じ関数がありますが、ACCESSでは構文が少し異なります。

レコード数をカウントする際に非常に便利なこの関数の使い方を説明しましょう。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSをもっと使いこなしたい方向けにACCESSの関数をご紹介していきます。

構文

DCount ( フィールド , テーブル , 抽出条件 )

サンプルテーブル

サンプルとして以下の売上情報が入力された「test_売上」テーブルを準備しました。

こちらのテーブルを元に、DCount関数で様々な値を集計します。

1.レコードの総件数を調べたい時

DCount (“売上ID”,”test_売上”)

結果は5になります。

2.仕入金額の件数を調べたい時

DCount (“仕入金額”,”test_売上”)

結果は4になります。

3.売上金額が20,000円以上の件数を調べたい時

DCount (“売上ID”,”test_売上”,”売上金額 >= 20000″)

結果は3になります。

4.顧客名に「ひこ」を含む件数を調べたい時

DCount (“売上ID”,”test_売上”,”顧客名 like ‘*ひこ*'”)

結果は2になります。
ここでは、あいまい抽出をするために「Like」演算子を使用し、「*」を使うことで「ひこを含む」を指定しています。
また、「*」の前後に「’(シングルクオーテーション)」を入れていますが、こちらは文字列型を示す「”(ダブルクオーテーション)」の内側で更に文字列型を指定するために使用します。

フォームでの使用例

1.直接指定

実際にACCESSのフォームで使用する場合の例を見てみましょう。
フォームのデザインビューで下記の通り設定します。

フォームに集計結果を表示するテキストボックスコントロールを非連結で作成しました。

フォームのプロパティを右側に表示していますが、コントロールソースには下記のように記載しています。

=DCount(“売上ID”,”test_売上”,”顧客名 like ‘*ひこ*'”)

では、フォームビューで結果を見てみましょう。

このように、DCountの集計結果がフォームに表示されました。

2.条件指定

先ほどの例では、DCountの抽出条件を直接コントロースソースに記載しました。
“顧客名 like ‘*ひこ*'”の部分です。

しかし、これでは条件を変更したい時にいちいちコントロースソースを変更しなければいけないので面倒です。
そこで、同じフォームの別のコントロールを使って抽出条件を変更する設定をしてみましょう。

フォームのデザインビューで下記のように設定します。

今度は、入力用コントロール「入力」を追加しました。
そして、結果表示用コントロールのコントロールソースには以下のように記述します。

=DCount(“売上ID”,”test_売上”,”顧客名 like’*” & [入力] & “*'”)

売上テーブルから、「入力」コントロールの値と一部が一致する「顧客名」を持つ売上IDの件数を集計するようにしています。

では結果を見てみましょう。

入力欄に「ひこ」と入力することで、結果欄に「2」が表示されました。
入力欄の値を変えると、

このように結果も連動して変えることができます。
こういうのを作れるようになるとACCESSの面白さが分かってきますよね。

以上、ACCESSのDCount関数でレコード数を集計する方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。