HOME > 即効テクニック > Excel VBA > データベース関連のテクニック > レコードセットのレコード数を取得する

即効テクニック

データベース関連のテクニック

レコードセットのレコード数を取得する

(Excel 2000/2002/2003)
●概要●
レコードセットのレコード数を取得するには、ADODB.RecordsetオブジェクトのRecordCountプロパティを利用します。

構文 オブジェクト.RecordCount
設定項目    内容
オブジェクト  ADODB.Recordsetオブジェクト

次のサンプルは、ADOを利用して、Accessデータベースにあるテーブルのレコード数を取得します。なお、このサンプルを実行するには、「Microsoft ActiveX Data Objects x.x Library(x.xはバージョンによって異なります)」に参照設定する必要があります。
●サンプル●
Sub Sample()
    Dim AdoConnection As ADODB.Connection
    Dim TableName As String
    
    TableName = "T_Master"
    
    Set AdoConnection = New ADODB.Connection
    AdoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
                        & "Data Source=" & ThisWorkbook.Path _
                        & Application.PathSeparator & "SampleDB.mdb"
                        
    With AdoConnection
        With New ADODB.Recordset
            .Open TableName, AdoConnection, adOpenKeyset
            MsgBox "レコード数は " & .RecordCount & "件です"
            .Close
        End With
        .Close
    End With
    
    Set AdoConnection = Nothing
    
End Sub
●ポイント●
ADODB.RecordsetオブジェクトをOpenメソッドを使って開き、その後、RecordCountプロパティを利用して、開いたレコードセットからレコード数を取得する場合、指定するカーソルタイプに注意が必要です。指定するカーソルタイプは、キーセットカーソル(adOpenKeyset)か静的カーソル(adOpenStatic)を指定しなくてはなりません。