行のカウント

適用先: Access 2013、Office 2013

RecordCount プロパティは、 Recordset 内のレコード数を示す長整数型 ( Long ) の値を返します。 Recordset オブジェクト内のレコード数を調べるには、 RecordCount プロパティを使用します。 ADO でレコード数を特定できない場合や、プロバイダーやカーソルのタイプが RecordCount をサポートしていない場合、このプロパティは -1 を返します。 閉じている RecordsetRecordCount プロパティを読み取ると、エラーが発生します。

RecordCount プロパティの値は、プロバイダーの機能とカーソルの種類によって異なります。 RecordCount プロパティは、前方スクロール カーソルの場合は -1 を返し、静的カーソルまたはキーセット カーソルの場合は実際の数を返し、動的カーソルの場合はデータ ソースによって -1 または実際の数を返します。

3 章: データを調べる」にあるサンプル Recordset は、前方スクロール カーソルが開いているため -1 を返します。 RecordCount プロパティを使用するには、より高度なカーソル (静的カーソルまたはキーセット カーソル) で Recordset を開く必要があります。

場合によっては、データ ソースからすべてのレコードを最初にフェッチしないと、プロバイダーまたはカーソルが RecordCount 値を提供できないことがあります。 この種類のフェッチを強制するには、RecordCount を呼び出す前に RecordsetMoveLast メソッドを呼び出します。

RecordsetOpen メソッドを呼び出すコード行を次のように置き換える場合:

 
oRs.Open sSQL, sCnStr, adOpenStatic, adLockOptimistic, adCmdText 

Microsoft OLE DB Provider for SQL Server の静的カーソルは RecordCount をサポートしているため、 RecordCount プロパティを使用できます。 たとえば、次のコードを実行すると、カーソルが RecordCount プロパティをサポートしている場合、コマンドが返すレコード数がデバッグ ウィンドウに表示されます。

 
Debug.Print oRs.RecordCount ' Output: 4 

ここからは、これらのさらに高度な (ただし負荷が高い) カーソルとロックの種類の設定を使用します。