現在の Recordset オブジェクトをクリアし、一連のコマンド操作を実行して次の Recordset を返します。
構文
Set recordset2 = recordset1.NextRecordset(RecordsAffected )
戻り値
Recordset オブジェクトを返します。構文の recordset1 と recordset2 には、同じ Recordset オブジェクト、または別のオブジェクトを指定できます。別の Recordset オブジェクトを指定する場合、NextRecordset の呼び出し後に元の Recordset (recordset1) の ActiveConnection プロパティを再設定すると、エラーが発生します。
パラメータ
RecordsAffected 省略可能です。長整数型 (Long) の変数で指定します。プロバイダは、操作の影響を受けたレコード数を返します。
注意 このパラメータは、操作の影響を受けたレコード数のみを返します。Recordset を作成するために使用された Select ステートメントからのレコード数を返すことはありません。
解説
NextRecordset メソッドでは、複合コマンド ステートメントの次のコマンドの結果、または複数の結果を返すストアド プロシージャの結果を返します。Command オブジェクトで Execute メソッドを使用するか、または Recordset オブジェクトで Open メソッドを使用して、"SELECT * FROM table1;SELECT * FROM table2" などの複合コマンド ステートメントに基づく Recordset オブジェクトを開いた場合、最初のコマンドのみが実行され、その結果が recordset に返されます。ステートメントの次のコマンドの結果にアクセスするには、NextRecordset メソッドを呼び出します。
残りの結果が存在し、複合ステートメントを含む Recordset がプロセスの境界を越えてマーシャリングされていない限り、NextRecordset メソッドは Recordset オブジェクトを返し続けます。行を返すコマンドからレコードが返されない場合、Recordset オブジェクトは空になります。これに該当するかどうかを調べるには、BOF と EOF のプロパティが両方とも True になっているかどうかを確認します。行を返さないコマンドが正しく実行された場合、返された Recordset オブジェクトは閉じています。この場合は、Recordset オブジェクトで State プロパティを調べて確認します。残りの結果が存在しない場合、recordset は Nothing に設定されます。
RDS での使用 クライアント側の Recordset オブジェクトでは、NextRecordset メソッドは使用できません。
即時更新モードで編集を行っているときに NextRecordset メソッドを呼び出すと、エラーが発生します。この場合は、最初に Update メソッドまたは CancelUpdate メソッドを呼び出してください。
複合ステートメントの複数のコマンドにパラメータを渡すには、Parameters コレクションを使用するか、または元の Open メソッドまたは Execute メソッドの呼び出しで配列を渡します。この場合、コレクションまたは配列のパラメータの並び順が、一連のコマンドの並び順と同じであることが必要です。出力パラメータの値を読み込むには、すべての結果の読み込みが終了している必要があります。
NextRecordset メソッドを呼び出すと、ステートメントの次のコマンドのみが実行されます。ステートメントのすべてのコマンドを実行する前に Recordset オブジェクトを明示的に閉じると、残りのコマンドは実行されません。