Mis à jour le 18/12/2002
Droit de diffusion et
d'utilisation: Il existe deux objets ADO pour réaliser les requêtes : Command et Recordset. Quelle est la différence ? L'objet Recordset, comme son nom l'indique, permet de
récupérer un ensemble d'enregistrements. La seule
requête SQL permettant de récupérer un jeu d'enregistrements
est le SELECT. Vous pouvez tout aussi bien utiliser cet objet pour
faire des UPDATE, DROP, ALTER, ... Je tiens tout de même à spécifier qu'il existe plusieurs façons d'exécuter une requête, mais j'ai fait le choix de vous présenter celle qui me semble la plus propre et la plus claire. Donc ne soyez pas surpris si vous trouvez sur d'autres cours et tutoriaux d'autres façons de faire. 3. Réaliser des requêtes avec l'objet Recordset Comme pour l'objet Connection vous devez commencer par déclarer une variable de type Recordset.
ou alors
L'ensemble de ces champs sont facultatifs, mais je vous conseille d'au moins passer les deux premiers paramètres à la méthode. Celà rend le code plus clair. Dans les exemples qui vont suivre je n'utiliserai que les deux premiers paramètres. Si vous souhaitez plus d'informations, je vous renvoie sur MSDN qui est très bien documenté. Voici un petit exemple :
Une fois le Open exécuté, l'ensemble des enregistrements retournés par le SELECT se trouvent dans l'objet Recordset, ici rst. Pour accéder à ces enregistrements vous devez utiliser le champ Field. Chaque champ Field contient une colonne. Dans notre cas nous en avons 3 numérotées de 0 à 2. Vous avez donc deux solutions pour accéder à un champ. Prenons l'exemple du champ prenom. Vous faites rst.Fields(1) ou bien rst.Fields("prenom"). Vous avez pû voir certainement du code avec rst(1) ou bien rst("prenom"), c'est la même chose. Et oui les développeurs sont un peu faignants dès qu'il s'agit de tapper du code ;o) Accèder à un champ c'est bien, mais pouvoir naviguer dans l'ensemble des enregistrements c'est mieux. Pour celà, il existent des méthodes permettant de le faire :
Il y a deux propriétés de l'objet Recordset à connaître pour la navigation qui sont:
Voici un exemple de boucle permettant de parcourir un jeu d'enregistrement et d'afficher le résultat.
Une fois que vous n'utilisez plus le Recordset, pensez à le fermer avec la méthode Close.
Il existe une autre propriété qui peut
être intéressante qui est RecordCount. Elle vous permet
de savoir le nombre d'enregistrements stockés dans l'objet
Recordset. Voici un petit exemple de fonction pouvant exécuter tout type de requêtes via un Recordset.
Documents réalisés par Sébastien Curutchet |