VBA SQLでレコード数をカウントしてそのまま表示する

MSACCESS_eyecatch
SBMJOB

VBAでSQLのCount関数を使って選択したレコード数を表示するサンプルをご紹介します。

目次

スポンサーリンク

概要

画面上部の三つのリストボックスは左から「大分類」「中分類」「小分類」三つのカテゴリーの選択が可能になっています。

「検索されたレコード数は?」ボタンを押すとSQLでデータを検索しレコード数をメッセージボックスに表示します。

「検索されたレコード数は?」ボタンコード

ポイントはVBAのSQLでlikeするときは”%”を使うところです。クエリでは”*”がワイルドカードですが、VBAではこの点が違います。

もちろんSQLでCountを使ってレコード合計数を取得しています。

Private Sub cmd計算_Click()

    Dim myCn     As ADODB.Connection    'ADOコネクションオブジェクト
    Dim myRs     As ADODB.Recordset     'ADOレコードセットオブジェクト
    Dim strSQL   As String              'SQL文用文字列
    
    
    '現在のデータベースへ接続
    Set myCn = CurrentProject.Connection
    
    'ADOレコードセットのインスタンス作成
    Set myRs = New ADODB.Recordset
    
    myRs.CursorLocation = adUseClient
    
    Dim stringDai As String
    Dim stringCyuu As String
    Dim stringSyou As String
    
    Dim recordCount As Integer
    
    If IsNull(Me.cb大分類) Then
        stringDai = "%"
    Else
        stringDai = Me.cb大分類
    End If
    
    If IsNull(Me.cb中分類) Then
        stringCyuu = "%"
    Else
        stringCyuu = Me.cb中分類
    End If
    
    If IsNull(Me.cb小分類) Then
        stringSyou = "%"
    Else
        stringSyou = Me.cb小分類
    End If
    
    
    
    'SQL文
    strSQL = "SELECT Count(商品マスター.ID) as カウント数"
    strSQL = strSQL & " FROM 商品マスター"
    strSQL = strSQL & " WHERE 大分類 LIKE '" & stringDai & "' AND"
    strSQL = strSQL & " 中分類 LIKE '" & stringCyuu & "' AND"
    strSQL = strSQL & " 小分類 LIKE '" & stringSyou & "'"
    strSQL = strSQL & " ;"
    
    'レコードセット取得・・・(※1)
    myRs.Open strSQL, myCn, adOpenKeyset, adLockReadOnly
  
    myRs.MoveFirst
    
    
        recordCount = myRs.Fields("カウント数")
    
  
    MsgBox "選択したレコードすうは!" & recordCount, vbOKOnly + vbInformation
    

    'オブジェクトの開放
    Set myRs = Nothing: Close
    Set myCn = Nothing: Close

End Sub

まとめ

この記事ではSQLのCount関数を使って該当するレコード数を取得しています。他の方法としては画面にセットしているレコードセットのレコード数をプロパティーから取得してレコード数とすることもできます。しかしVBAに明示的にSQLを書いた方が後のメンテナンス性は良いと思われます。簡単な紹介でしたが今後この記事はリライトしていこうと思っています。

スポンサーリンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

システム開発SE・アプリ開発・デバッガー等々なんでもやる猫の下僕です。現在は凶暴猫にカタカタ動く手を狙われながらキーボードを打っています。かなりゆるい性格なのでコメントやメッセージお気軽に〜お仕事のご依頼もお気軽にぃ〜

スポンサーリンク

コメント

コメントする

CAPTCHA


目次