#121 レコードセットを使わずにレコード数を取得する方法 VBA

テーブルなどのレコード数を求めるには、いくつかの方法があります。VBAの一連のプログラムの中で、DatabaseオブジェクトやRecordsetオブジェクトを使ってデータ操作する場合には、RecordsetオブジェクトのRecordCountプロパティから取得することができますので、それを使えばよいでしょう。

しかし、あるテーブルのレコード数をチェックして、それが一定条件以上であれば、いくつかのアクションクエリーを連続して実行するだけといった処理では、わざわざDatabaseオブジェクトやRecordsetオブジェクトを宣言したり、生成したりするのは面倒です。

そのような場合、定義域集計関数の1つである「DCount関数」を使うことができます。この関数の最初の引数に "*" を指定することによって、そのテーブルの全レコードの数を取得することができます。もちろん、3つめの引数にWhere条件を追加すれば、それに対応したレコード数を求めることもできます。

商品区分テーブルの全レコード数を調べる場合
Debug.Print DCount("*", "商品区分")
分類=1であるレコード数を調べる場合
Debug.Print DCount("*", "商品区分", "分類=1")

もし、主キーフィールドが"区分コード"である場合、
Debug.Print DCount("区分コード", "商品区分")
のような記述でも同じことができますが、"*"を使えば、わざわざフィールド名を調べる手間が要りません。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved