[VBS][résolu] imbriquer des "do while ... loop"?

imbriquer des "do while ... loop"? [VBS][résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 20-01-2005 à 14:50:48    

[edit:]Résolu ! j'avais juste oublié un end if en dessous :([/edit]
 
 
Voila j'essais d'imbriquer des do while loop mais j'ai l'erreur "'loop' without 'do' "
 
Donc je me demande comment faire ...  
Existe 'il une alternative ? (je pense quand mme que oui )
voici le bout de code :
 

Code :
  1. <% SQL="SELECT * FROM utilisateurs"
  2. Set RS = server.createobject("ADODB.Recordset" )
  3. RS.Open SQL,Conn , 3, 3
  4. Do While not RS.eof
  5.    SQL3="SELECT * FROM menu WHERE menu_x='1'"
  6. Set RS3 = server.createobject("ADODB.Recordset" )
  7. RS3.Open SQL3,Conn , 3, 3
  8. Do While not RS3.eof
  9.  autorise=0
  10.       SQL2="SELECT * FROM droits WHERE pseudo='"&RS("pseudo" )&"' AND mx='"&RS3("id" )&"'"
  11.  Set RS2 = server.createobject("ADODB.Recordset" )
  12.  RS2.Open SQL2,Conn , 3, 3
  13.  Do While not RS2.eof
  14.   autorise=1
  15.  RS2.MoveNext
  16.  Loop
  17. RS3.MoveNext
  18. Loop
  19. RS.MoveNext
  20. Loop %>


Message édité par seb-belfort le 24-01-2005 à 14:21:40
Reply

Marsh Posté le 20-01-2005 à 14:50:48   

Reply

Marsh Posté le 21-01-2005 à 17:16:31    

help please!

Reply

Marsh Posté le 21-01-2005 à 17:20:36    

Salut,
 
A quel niveau te renvoie t-il ? Est-ce qu'il surligne un Loop ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 21-01-2005 à 17:26:05    

l'erreur s'affiche sur la page d' IE donc il n'y a pas de surlign

Reply

Marsh Posté le 21-01-2005 à 17:26:51    

age, pardon ça a posté tout seul, àa me dit juste 'loop' without 'do' ligne 43 ( ligne du loop )

Reply

Marsh Posté le 21-01-2005 à 17:29:26    

seb-belfort a écrit :

age, pardon ça a posté tout seul, àa me dit juste 'loop' without 'do' ligne 43 ( ligne du loop )


Et la ligne 43 correspond à quelle ligne de ce que tu as posté ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 21-01-2005 à 17:37:27    

je crois que c'est celui de la ligne 21, je peux pas vérifier tt de suite,je l'ai plus sur cet ordi :(

Reply

Marsh Posté le 21-01-2005 à 19:11:27    

et remplacer 'do while ....  loop' par
'while (not) ....  end while (ou wend)' ?
je sais pas. c'est juste comme ça.

Reply

Marsh Posté le 23-01-2005 à 13:41:14    

Salut,
Marrant mais perso je place toujours un
RS.Movefirst dans une boucle
Ce n'est pas indispensable?
De plus, par expérience (malheureuse  :(  ), je fais toujours un test de données vide :  
if not Rs.eof then
RS.Movefirst
Do While not RS.eof

...
RS.Movenext
loop
end if

 
Tout le reste de la syntaxe me paraît parfaite...
 
Azsch

Reply

Marsh Posté le 24-01-2005 à 14:21:05    

résolu ! j'avais juste oublié un end if en dessous :(
 
merci a tous pour votre aide!

Reply

Marsh Posté le 24-01-2005 à 14:21:05   

Reply

Marsh Posté le 24-01-2005 à 14:49:35    

Azsch a écrit :

De plus, par expérience (malheureuse  :(  ), je fais toujours un test de données vide :  
if not Rs.eof then


Je te conseille vivement de faire :
 

Code :
  1. If Not (Rs.BOF and Rs.EOF) Then


 
Parceque tu peux être à EOF (à la fin du Rs) sans qu'il soit vide, par exemple si tu viens de le parcourir une fois.
Vérifier que tu n'est pas à la fois à la fin et au début est donc plus sûr ;)

Reply

Marsh Posté le 24-01-2005 à 14:55:51    

ok je vais faire ta méthode tu as raison ! merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed