NextRecordset-Methode (ADO)

Gilt für: Access 2013, Office 2013

Löscht das aktuelle Recordset-Objekt, und gibt das nächste Recordset-Objekt zurück, indem sie durch eine Reihe von Befehlen wechselt.

Syntax

Legen Sie recordset2 = recordset1 fest. NextRecordset(RecordsAffected )

Rückgabewert

Gibt ein Recordset-Objekt zurück. Im Syntaxmodell können Sie für recordset1 und recordset2 dasselbe Recordset-Objekt angeben oder separate Objekte verwenden. Wenn Sie separate Recordset-Objekte verwenden und die ActiveConnection-Eigenschaft auf das ursprüngliche Recordset-Objekt (recordset1) zurücksetzen, nachdem NextRecordset aufgerufen wurde, wird ein Fehler generiert.

Parameter

Parameter Beschreibung
Betroffene Datensätze Optional. Eine Long -Variable, an die der Anbieter die Anzahl der Datensätze zurückgibt, auf die sich der aktuelle Vorgang auswirkt.

Hinweis

This parameter only returns the number of records affected by an operation; it does not return a count of records from a select statement used to generate the Recordset.

Hinweise

Verwenden Sie die NextRecordset-Methode, um die Ergebnisse des nächsten Befehls in einer Verbundbefehlsanweisung oder einer gespeicherten Prozedur, die mehrere Ergebnisse zurückgibt, zurückzugeben. Wenn Sie ein Recordset-Objekt auf der Grundlage einer Verbundbefehlsanweisung (z. B. "SELECT * FROM table1;SELECT * FROM table2") mithilfe der Execute-Methode für einen Command oder mithilfe der Open-Methode für ein Recordset-Objekt öffnen, führt ADO nur den ersten Befehl aus und gibt die Ergebnisse an das Recordset-Objekt zurück. Rufen Sie die NextRecordset-Methode auf, um auf die Ergebnisse nachfolgender Befehle in der Anweisung zuzugreifen.

Solange zusätzliche Ergebnisse vorliegen und das Recordset , das die Verbundanweisungen enthält, nicht getrennt oder über Prozessgrenzen hinweg gemarshallt wird, gibt die NextRecordset-Methode weiterhin Recordset-Objekte zurück. Wenn ein Zeilenrückgabebefehl erfolgreich ausgeführt wird, aber keine Datensätze zurückgibt, ist das zurückgegebene Recordset-Objekt zwar geöffnet, aber leer. Testen Sie diesen Fall, indem Sie überprüfen, ob die Eigenschaften BOF und EOF auf True festgelegt sind. Wenn ein Befehl ohne Zeilenrückgabe erfolgreich ausgeführt wird, wird das zurückgegebene Recordset-Objekt geschlossen, was Sie überprüfen können, indem Sie die State-Eigenschaft für das Recordset-Objekt testen. Wenn keine weiteren Ergebnisse vorliegen, wird das Recordset auf Nothing festgelegt.

Die NextRecordset -Methode ist in einem getrennten Recordset -Objekt, bei dem ActiveConnection auf Nothing (in Microsoft Visual Basic) oder NULL (in anderen Sprachen) festgelegt wurde, nicht verfügbar.

Wenn im Modus der unmittelbaren Aktualisierung eine Bearbeitung vorgenommen wird, wird beim Aufrufen der NextRecordset -Methode ein Fehler generiert. Rufen Sie zunächst die Update-Methode oder die CancelUpdate-Methode auf.

Wenn Sie einen Parameter für mehrere Befehle in der Verbundanweisung übergeben möchten, indem Sie die Parameters-Auflistung auffüllen oder ein Array mit dem ursprünglichen Aufruf von Open oder Execute übergeben, muss die Reihenfolge der Parameter in der Auflistung oder im Array der Reihenfolge ihrer jeweiligen Befehle in der Befehlsreihe entsprechen. Sie müssen zunächst alle Ergebnisse lesen, bevor Sie die Werte der Ausgabeparameter lesen können.

Ihr OLE DB-Anbieter bestimmt, wann ein Befehl in einer Verbundanweisung ausgeführt wird. Der Microsoft OLE DB Provider für SQL Server führt beispielsweise alle Befehle nach dem Erhalt der Verbundanweisung nacheinander aus. Die resultierenden Recordset -Objekte werden beim Aufrufen von NextRecordset einfach zurückgegeben.

However, other providers may execute the next command in a statement only after NextRecordset is called. For these providers, if you explicitly close the Recordset object before stepping through the entire command statement, ADO never executes the remaining commands.