Petit soucis avec les BOF et EOF [Access][ADODB] - SQL/NoSQL - Programmation
Marsh Posté le 19-05-2004 à 10:22:24
Bonjour,
Voila, j'obtiens toujours le meme probleme. Apres creation des connexions et definition du recordset, voici ce que j'ai tape pour tenter de recuperer ce qu'il y a dans le recordset :
Code :
|
Des que ce code est execute, il m'affiche "EOF", et ensuite le meme message d'erreur vu precedemment (ce qui parait assez logiquem compte tenu du message "EOF" ).
Quel en est la raison ? Mon recordset est vide ? Je suis arrive a la fin du recordset et il faut que lui precise d'aller au debut ?
Voila quelques interrogations existentielles qui mettent bien a mal ma conscience.
Merci d'avance.
Lebowski
Marsh Posté le 23-10-2004 à 00:22:07
Bonsoir,
Le problème est que vous ne pouvez pas accéder à la valeur d'un champ si la recordset est vide ou que le pointeur de recordset a atteint une limite (EOF ou BOF à True).
Le problème dans le premier Algo vient de la boucle "Do Until", même si le recordset est vide, il fera un tour de boucle, c'est dans la structure. En revanche dans le second exemple vous tester votre recordset, mais vous accedez à la valeur du champ en ligne 15 et vous obtenez une erreur. Je vous conseille la structure suivante :
With rs
While Not .EOF
Affichage.Caption = rs.GetString
.MoveNext
Wend
End With
Elle offre l'avantage de tester d'abord l'état de la condition (Not .Eof) donc si le recordset est vide, vous n'entrerez pas dans la boucle.
Voilà
Marsh Posté le 18-05-2004 à 16:00:17
Bonjour,
Une petite question pour agrementer votre apres-midi :
Voici le code que j'ai tape.
Des que je l'execute, rien ne se passe (alors que j'aimerais bien avoir la liste des employers).
Si par hasard j'enleve le bloc :
Il m'affiche une erreur 3021 (Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record).
'oila, 'oila, si quelqu'un peut m'expliquer (ou a defaut corriger) ce petit bout de code, j'en serai au comble de ma bonne humeur.
D'avance, merci beaucoup.
Lebowski
PS : Romania, Trezeste-te (c'est du roumain...)
Message édité par lebowski le 18-05-2004 à 16:02:22