Probleme dans une boucle

bonjour à tous,

jai un petit soucis avec mon code vba . jai crée un formulair le code marche parfaitement le seul probleme c'est que je dois exécuté la macro directement sur vba et non grace au bouton du formulaire . quand je rajoute le code Call pour appelé jai un message d'erreur [ boucle sans DO] . je souhaiterai juste que mon bouton marche car sans le bouton le code est bon , jespere que quelqu'un pourra m'aider

Sub D1_Click()
Dim sSQL As String
Dim rs As DAO.Recordset
'DoCmd.OpenQuery sSQL
Set rs = CurrentDb.OpenRecordset(sSQL)

Do While Not rs.EOF
Select Case rs!CODE_PART
Case "D1"
Me!D1.Value = rs!COEFFICIENT_PART * Me![Texte21] / 100
Loop While Not rs.EOF

    MsgBox "OK, poursuite de la procédure."
End Sub

Sub lancer_Click()
Call D1_Click
End Sub

merci d'avance

Bonjour

Je pense qu'il manque un End Select avant le Loop

Cordialement

Bonjour,

autant prendre l'habitude dans un code de mettre

if

code ici

endif

et insérer entre les 2 , pareil pour tout ce qui est boucle do /loop for/next:)

P.

Bonjour,

Il faut essayer en remplaçant la ligne :

Loop While Not rs.EOF

par :

Loop

Car la condition de sortie est déjà fixée au début donc ça fait doublon et inutile. La condition fixée au début permet de ne pas rentrer du tout dans le boucle alors que la condition fixée à la fin fait au moins un tour dans la boucle.

jai fais

end select 

mais cela ne marche pas . ce qui pose probleme c'est le

sub  lancer_ click 
call D1_CLICK
END SUB 

Des que jai mis ce code mon 1 er code ne marché plus et jai eu le message d'erreur [ boucle sans do]


Raja a écrit :

Bonjour,

Il faut essayer en remplaçant la ligne :

Loop While Not rs.EOF

par :

Loop

Car la condition de sortie est déjà fixée au début donc ça fait doublon et inutile. La condition fixée au début permet de ne pas rentrer du tout dans le boucle alors que la condition fixée à la fin fait au moins un tour dans la boucle.

le code initial sans le bouton et qui marche cest

Sub D1_Click()
Dim sSQL As String
Dim rs As DAO.Recordset
'DoCmd.OpenQuery sSQL
Set rs = CurrentDb.OpenRecordset(sSQL)
Do While Not rs.EOF
Select Case rs!CODE_PART
Case "D1"
Me!D1.Value = rs!COEFFICIENT_PART * Me![Texte21] / 100
Loop

   

des que j'ai rajouter

Sub lancer_Click()
Call D1_Click
End Sub

ca ne marché plus et le bouton m'affiche [ Erreur de compilation : Boucle sans Do ]

JE VOUS AVOUREZ QUE JE SUIS UN PEU PERDU

Re,

Rechercher des sujets similaires à "probleme boucle"