While not rs.eof and toto = 1

Résolu
PuppetMaster34 Messages postés 10 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 27 septembre 2005 - 26 juin 2005 à 00:56
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 27 juin 2005 à 18:42
Salut,
en effectuant ce test, pourquoi il sort de la boucle lorsque mon recorset est à la fin alors que la seconde condition n'est pas remplie ?
Comment puis-je faire pour ne plus avoir ce problème ?
Merci d'avance pour vos lumières à ce sujet.

7 réponses

AlainTech Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 28 juin 2005
26 juin 2005 à 22:35
Dans ce cas, il faut utiliser while (not rs.eof) and (toto <> 1).
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
26 juin 2005 à 02:46
Salut
Quand tu dis "la seconde condition n'est pas remplie", ça voudrait dire que "toto <> 1" : alors normal que la boucle ne s'effectue pas : le Not n'agit que sur "rs.EOF", pas sur "Toto = 1"
Essaye de voir si des parenthèses bien placées résoudraient le problème.
While : traduit par "tant que mes conditions sont vraies, j'exécute"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
AlainTech Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 28 juin 2005
26 juin 2005 à 14:33
Essaye avec while not (rs.eof and toto = 1)

Je ne sais pas si c'est ce que tu attends comme résultat...
Dans ce cas-ci, la boucle continuera tant que rs.eof ne sera pas atteint ou que toto sera difféfent de 1.

Autrement dit, while (not rs.eof) or (toto <> 1) est équivalent à la formule ci-dessus.
0
PuppetMaster34 Messages postés 10 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 27 septembre 2005
26 juin 2005 à 21:33
En fait je veux qu'il reste dans la boucle tant que mon rs.eof est False ET que toto <> X

Cette solution ne me convient pas :while (not rs.eof) or (toto <> 1) car on sort de la boucle si une des deux conditions est vérifée, alors que je veux sortir lorsque les deux conditions sont remplies : mon recordset arrivant à la fin et ma variable atteingant sa valeur. Je ne sais pas si je suis clair, mais MERCI pour vos réponses rapides !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PuppetMaster34 Messages postés 10 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 27 septembre 2005
27 juin 2005 à 17:57
ben avec cette solution, il continu de sortir de la boucle sans tenir compte de ma variable...
décidément, je ne comprends pas tout la ;(
Je veux sortir à la fin du recordset ET lorsque ma variable atteind la valeur X. Sachant que le recorset se "termine" avant que ma variable X soit atteinte.

exemple concret :
while (not rs.eof) and (toto <> 39)
wend
le recordset se termine en 3 itérations alors que toto n'a pas atteind 39
0
AlainTech Messages postés 4 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 28 juin 2005
27 juin 2005 à 18:40
C'est donc bien un OR que tu dois mettre entre tes 2 conditions.
La boucle va continuer si l'une OU l'autre des conditions est remplie.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
27 juin 2005 à 18:42
essayes Until:



Do Until rs.eof and toto = 39

- - - - - - - - - - - - - - - -

Loop


Daniel
0
Rejoignez-nous