Partager via


NextRecordset, méthode (ADO)

S’applique à : Access 2013, Office 2013

Efface l’objet Recordset actif et retourne l’objet Recordset suivant en exécutant une série de commandes.

Syntaxe

Définissez recordset2 = recordset1. NextRecordset(RecordsAffected )

Valeur renvoyée

Retourne un objet Recordset. Dans le modèle de syntaxe, JeuEnregistrements1 et JeuEnregistrements2 peuvent représenter le même objet Recordset ou vous pouvez utiliser des objets distincts. Lorsque vous utilisez des objets Recordset distincts et que vous réinitialisez la propriété ActiveConnection sur l'objet Recordset d'origine (JeuEnregistrements1) après l'appel de NextRecordset, une erreur se produit.

Paramètres

Paramètre Description
RecordsAffected Facultatif. Variable de type Long dans laquelle le fournisseur retourne le nombre d'enregistrements concernés par l'opération actuelle.

Remarque

Ce paramètre ne retourne que le nombre d'enregistrements concernés par une opération ; il ne retourne pas le décompte d'enregistrements d'une instruction Select utilisée pour générer l'objet Recordset.

Remarques

Utilisez la méthode NextRecordset pour retourner les résultats de la commande suivante dans une instruction de commandes composée ou les résultats d’une procédure stockée qui retourne plusieurs résultats. Si vous ouvrez un objet Recordset sur la base d’une instruction de commandes composée (par exemple, « SELECT * FROM table1;SELECT * FROM table2 ») à l’aide de la méthode Execute sur un objet Command ou de la méthode Open sur un objet Recordset, ADO exécute uniquement la première commande et retourne les résultats à JeuEnregistrements. Pour accéder aux résultats des commandes suivantes de l’instruction, appelez la méthode NextRecordset.

Tant qu’il existe des résultats supplémentaires et que l’objet Recordset contenant les instructions composées n’est pas déconnecté ou marshalé au-delà des limites de processus, la méthode NextRecordset continue de renvoyer des objets Recordset . Si une commande de retour de ligne s’exécute correctement mais ne retourne aucun enregistrement, l’objet Recordset retourné est ouvert mais vide. Testez ce cas en vérifiant que les propriétés BOF et EOF ont la valeur True. Si une commande ne retournant pas de ligne s’exécute correctement, l’objet Recordset retourné est fermé, ce que vous pouvez vérifier en testant la propriété State sur l’objet Recordset. Lorsqu’il n’y a plus de résultats, recordset est défini sur Nothing.

La méthode NextRecordset n’est pas disponible sur un objet Recordset déconnecté, dont la propriété ActiveConnection a la valeur Nothing (en Microsoft Visual Basic) ou NULL (dans les autres langages).

Si une modification est en cours en mode de mise à jour immédiate, l'appel de la méthode NextRecordset génère une erreur ; il faut d'abord appeler la méthode Update ou CancelUpdate.

Pour passer des paramètres à plusieurs commandes dans l'instruction composée en complétant la collection Parameters ou en passant un tableau avec l'appel de Open ou Execute d'origine, les paramètres de la collection ou du tableau doivent respecter le même ordre que leurs commandes correspondantes dans la série de commandes. Vous devez terminer la lecture de tous les résultats avant de lire les valeurs des paramètres de sortie.

Votre fournisseur OLE DB détermine le moment où chaque commande d'une instruction composée est exécutée. Le fournisseur Microsoft OLE DB pour SQL Server, par exemple, exécute toutes les commandes dans un lot lorsqu’il reçoit l’instruction composée. Les objets Recordset résultants sont simplement retournés lorsque vous appelez NextRecordset.

En revanche, il est possible que d'autres fournisseurs n'exécutent la commande suivante d'une instruction qu'après l'appel de NextRecordset. Pour ces fournisseurs, si vous fermez explicitement l'objet Recordset avant d'exécuter toute l'instruction, commande par commande, ADO n'exécute jamais les commandes restantes.