VBA・SQL|AccessでCOUNTを使ってレコード数をカウントする方法

エクセルVBA VBAでSQL



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ではレコード数を求めることがなにかと必要になってきますので、今回の記事が少しでもお役に立てばと思います☆




VBAでSQL
ブイサバ【Excel VBAサバイバル】~とりあえずここに来れば解決できる~

コメント

タイトルとURLをコピーしました