Excel VBAでSQLを使ってAccessのレコード数をカウントする方法について質問が来ます。
Accessのレコード数をカウントするには、SQLの集計関数であるCOUNTを使って
SELECT COUNT(集計するフィールド) FROM テーブル名
のように記述します。
今回は、Excel VBAでAccessのレコード数をCOUNTを使ってカウントする方法について徹底的にお伝えしていきますね☆
Excel VBA・SQL|AccessでCOUNTを使ってレコード数をカウントする方法
Accessのテーブルのレコード数をカウントするには、SQLの集計関数「COUNT」を使います。
COUNTの構文は以下のとおりです。
▶COUNTを使ってレコード数をカウントする構文
SELECT COUNT(集計するフィールド) FROM テーブル名
例えば、以下のテーブル「商品マスタ」のフィールド「商品名」のレコード数を集計するには、以下のようになります。
Sub レコード数をカウントする()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
'Connectionオブジェクトを作成
Set cn = New ADODB.Connection
'Recordsetオブジェクトを作成
Set rs = New ADODB.Recordset
'データベースを開く
cn.Open _
"Provider=Microsoft.ACE.OLEDB.16.0;" & _
"Data Source=" & ThisWorkbook.Path & "\テスト.accdb;"
Dim vSQL As String
vSQL = "SELECT COUNT(商品名) FROM 商品マスタ;"
'SQLを実行
cn.Execute vSQL
'「商品マスタ」テーブルのデータを取得してセルに転記
rs.Open vSQL, cn
Range("A1").CopyFromRecordset rs
rs.Close
cn.Close
End Sub
【実行結果】
フィールド「商品名」のレコード数が「5」と集計されました。
まとめ
今回は、Excel VBAでSQLを使ってAccessのレコード数をカウントする方法についてお伝えしました。
Accessのレコード数を集計るには、SQLの集計関数であるCOUNTを使って
SELECT COUNT(集計するフィールド) FROM テーブル名
のように記述します。
具体的には、以下のように記述します。
vSQL = "SELECT COUNT(商品名) FROM 商品マスタ;"
Excel VBAで最終行を求めるのと同じように、Accessではレコード数を求めることがなにかと必要になってきますので、今回の記事が少しでもお役に立てばと思います☆
コメント