OVH Cloud OVH Cloud

Boucle Do Until

3 réponses
Avatar
Jacques
Bonsoir,

Pour quel raison lorsque la premi=E8re boucle Do Until est termin=E9e
elle ne continue sur la seconde boucle Do Until, et va directement =E0
la fin.

'--- Interrogation de la tbl Graphique N rs
rq =3D "select * From [tbl Graphique N]"
Set rs6 =3D db.OpenRecordset(rq, dbOpenDynaset)

'---1 - Boucle sur la table Graphique N
Do Until rs6.EOF

'--- Copie
rs6.Edit

Select Case rs6!TrancheAge
Case "04 =E0 08 ans"
Ecriture_Enregistrement2 rs6, rs7, rs8, rs9, 1
Case "09 =E0 10 ans"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

End Select
rs6.MoveNext
Loop


'--- Interrogation de la tbl Adh=E9rents rs (rs)
rq =3D "select * from [tbl Adh=E9rents]"
Set rs =3D db.OpenRecordset(rq, dbOpenDynaset)

'--- Interrogation de la tbl Type de Classement rs3
rq =3D "select * from [tbl Type de Classements]"
Set rs3 =3D db.OpenRecordset(rq, dbOpenDynaset)

'--- 4 - Boucle sur la table Adh=E9rents rs (rs)
Do Until rs.EOF

'--- Mettre =E0 jour la barre de progression
SysCmd acSysCmdUpdateMeter, IntEnrg
Forms![frm Mise =E0 jour nouvelle saison]!Jauge.Object.max =3D
IntTotalEnrg
Forms![frm Mise =E0 jour nouvelle saison]!Jauge.Object.Value =3D
IntEnrg

Select Case rs!ClassementAct
Case "NC"
Ecriture_Enregistrement1 rs, rs3, 1
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
End Select
rs.MoveNext

loop
Merci pour votre aide=20
Salutations.

3 réponses

Avatar
Eric
Bonjour,

Il s'agit d'un extrait de code, donc diagnostic difficile.
A tout hasard, entre les lignes
Set rs = db.OpenRecordset(rq, dbOpenDynaset) ...
Set rs3 = db.OpenRecordset(rq, dbOpenDynaset)
et
Do Until rs.EOF
n'aurais-tu pas déjà parcouru le jeu rs car cette partie est nommée :
4 - Boucle sur la table Adhérents rs (rs) alors que la définition de rs
est située avant.
Que se passe-t-il si tu mets juste avant la ligne Do Until rs.EOF un
rs.MoveFirst ?


Bonsoir,

Pour quel raison lorsque la première boucle Do Until est terminée
elle ne continue sur la seconde boucle Do Until, et va directement à
la fin.

'--- Interrogation de la tbl Adhérents rs (rs)
rq = "select * from [tbl Adhérents]"
Set rs = db.OpenRecordset(rq, dbOpenDynaset)

'--- Interrogation de la tbl Type de Classement rs3
rq = "select * from [tbl Type de Classements]"
Set rs3 = db.OpenRecordset(rq, dbOpenDynaset)

'--- 4 - Boucle sur la table Adhérents rs (rs)
Do Until rs.EOF

'--- Mettre à jour la barre de progression
SysCmd acSysCmdUpdateMeter, IntEnrg
Forms![frm Mise à jour nouvelle saison]!Jauge.Object.max > IntTotalEnrg
Forms![frm Mise à jour nouvelle saison]!Jauge.Object.Value > IntEnrg

Select Case rs!ClassementAct
Case "NC"
Ecriture_Enregistrement1 rs, rs3, 1
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
End Select
rs.MoveNext

loop
Merci pour votre aide
Salutations.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
MG
poure obliger la boucle à s'exécuter faire plutôt

do

loop until


par contre, il faut tester EOF avant d'entrer dans la boucle pour éviter une
erreue en cas d'EOF



"Jacques" a écrit dans le message de news:

Bonsoir,

Pour quel raison lorsque la première boucle Do Until est terminée
elle ne continue sur la seconde boucle Do Until, et va directement à
la fin.

'--- Interrogation de la tbl Graphique N rs
rq = "select * From [tbl Graphique N]"
Set rs6 = db.OpenRecordset(rq, dbOpenDynaset)

'---1 - Boucle sur la table Graphique N
Do Until rs6.EOF

'--- Copie
rs6.Edit

Select Case rs6!TrancheAge
Case "04 à 08 ans"
Ecriture_Enregistrement2 rs6, rs7, rs8, rs9, 1
Case "09 à 10 ans"
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

End Select
rs6.MoveNext
Loop


'--- Interrogation de la tbl Adhérents rs (rs)
rq = "select * from [tbl Adhérents]"
Set rs = db.OpenRecordset(rq, dbOpenDynaset)

'--- Interrogation de la tbl Type de Classement rs3
rq = "select * from [tbl Type de Classements]"
Set rs3 = db.OpenRecordset(rq, dbOpenDynaset)

'--- 4 - Boucle sur la table Adhérents rs (rs)
Do Until rs.EOF

'--- Mettre à jour la barre de progression
SysCmd acSysCmdUpdateMeter, IntEnrg
Forms![frm Mise à jour nouvelle saison]!Jauge.Object.max IntTotalEnrg
Forms![frm Mise à jour nouvelle saison]!Jauge.Object.Value IntEnrg

Select Case rs!ClassementAct
Case "NC"
Ecriture_Enregistrement1 rs, rs3, 1
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
End Select
rs.MoveNext

loop




Merci pour votre aide
Salutations.
Avatar
Jacques
Bonjour.

Non rs MoveFirst cela ne fait rien ;

En fait mon code passe bien sur la boucle mais pour le premier
enregistrement et pas pour les autres.

Voici ma Sub qui est appelée par Ecriture_Enregistrement1 rs, rs3, 1 :

Sub Ecriture_Enregistrement1 (ByRef rs As Recordset, ByRef rs3 As
Recordset, _
ByVal Classement As Integer)

'--- Recherche de la réfClassement à appliquer
rs3.FindFirst "RéfTypeClass = " & Classement
'--- Enregistrement des données
rs.Edit
rs!RéfClassAct = rs3!RéfTypeClass
rs.Update
End Sub

Salutations



Bonjour,

Il s'agit d'un extrait de code, donc diagnostic difficile.
A tout hasard, entre les lignes
Set rs = db.OpenRecordset(rq, dbOpenDynaset) ...
Set rs3 = db.OpenRecordset(rq, dbOpenDynaset)
et
Do Until rs.EOF
n'aurais-tu pas déjà parcouru le jeu rs car cette partie est nommée :
4 - Boucle sur la table Adhérents rs (rs) alors que la définition de rs
est située avant.
Que se passe-t-il si tu mets juste avant la ligne Do Until rs.EOF un
rs.MoveFirst ?


Bonsoir,

Pour quel raison lorsque la première boucle Do Until est terminée
elle ne continue sur la seconde boucle Do Until, et va directement à
la fin.

'--- Interrogation de la tbl Adhérents rs (rs)
rq = "select * from [tbl Adhérents]"
Set rs = db.OpenRecordset(rq, dbOpenDynaset)

'--- Interrogation de la tbl Type de Classement rs3
rq = "select * from [tbl Type de Classements]"
Set rs3 = db.OpenRecordset(rq, dbOpenDynaset)

'--- 4 - Boucle sur la table Adhérents rs (rs)
Do Until rs.EOF

'--- Mettre à jour la barre de progression
SysCmd acSysCmdUpdateMeter, IntEnrg
Forms![frm Mise à jour nouvelle saison]!Jauge.Object.max =
IntTotalEnrg
Forms![frm Mise à jour nouvelle saison]!Jauge.Object.Value =
IntEnrg

Select Case rs!ClassementAct
Case "NC"
Ecriture_Enregistrement1 rs, rs3, 1
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
End Select
rs.MoveNext

loop
Merci pour votre aide
Salutations.



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr