OVH Cloud OVH Cloud

with, do until ..

15 réponses
Avatar
fth
Bonjour,

le code suivant me donne du fil a retordre :-(
j'ai un peu de mal à mettre de l'ordre dans la succession des "end" en
sortie...
LE code doit:
1. prendre comme recordset celui qui s'affiche à l'écran;
2. aller au début de la liste;
3. choisir le bon contrat;
4. refaire l'opération jusqu'à la fin

d'avance merci pour votre aide
Frédéric

Private Function ContratPrintList()


Dim rst As Recordset
'Dim stlink As String

'If ContratSend = True Then
'MsgBox "Contrat déjà rédigé", vbInformation, "Contrat"


Set rst = Me.RecordsetClone



With rst
If Not .BOF Then
.MoveFirst


Do Until .EOF

Select Case ContratType

Case "Bénévole":
DoCmd.OpenReport "RptContratBenevole", acViewPreview
Me.ContratSend = True


Case "Bénévole/défrayé":
DoCmd.OpenReport "RptContratBenevDef", acViewPreview
Me.ContratSend = True


Case "Chauffeur":
DoCmd.OpenReport "RptContratChauffeur", acViewPreview
Me.ContratSend = True

.MoveNext
End With
End Select
End If

End Function

5 réponses

1 2
Avatar
fth
Re,

ça commence à tourner.
Les filtre de CASE n'était pas bon.

Maintenant, il me met "error" comme s'il n'avait pas de records..

J'en reviens donc à la partie recordset...
Fastidieux hein ;-)

Mais merci à vous deux

"WhoIsPerfect ?" wrote in message
news:45acbb3a$0$18998$
Hello fth & Ze Titi,

Fth, reprenons un peu l'ordre des choses ;o)..

Ce que tu décris, n'est pas une "function", mais plutôt un "Sub" car tu
veux y mettre un événement dessus (OnClick).
Ex de function :
Function Add(a,b)
Add = a + b
End function
Ensuite, dans une procédure (Sub), tu peux utiliser la fonction :
toto = Add(1,2) (toto sera égal à 3 (1+2)) :O)..

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

Dans un deuxième temps. Que veux-tu faire exactement ???..

1°) Passer sur tous les contrôles de ton formulaire (Si tel est le cas,
ton recordset n'a qu'une seule ligne, donc le Do...Loop ne te sert à rien)
;o).
2°) Passer sur tous les enregistrements d'une table/requête..

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

@ de suite ;o)
Olivier.


"ze Titi" a écrit dans le message de
news:
As-tu pris en compte les modifs suggérées par Whoisperfect ? As-tu ajouté
le .MoveLast ?


Dans ton message <# du mardi
Bonjour et merci pour vos piste.

J'appelle la fonction sur click de mon bouton mais il ne se passe rien
...
Je copie donc le code directement sur le click, idem..

mon recorset est il juste?
...
merci

Frederic

"fth" wrote in message
news:O%
Bonjour,

le code suivant me donne du fil a retordre :-(
j'ai un peu de mal à mettre de l'ordre dans la succession des "end" en
sortie...
LE code doit:
1. prendre comme recordset celui qui s'affiche à l'écran;
2. aller au début de la liste;
3. choisir le bon contrat;
4. refaire l'opération jusqu'à la fin

d'avance merci pour votre aide
Frédéric

Private Function ContratPrintList()


Dim rst As Recordset
'Dim stlink As String

'If ContratSend = True Then
'MsgBox "Contrat déjà rédigé", vbInformation, "Contrat"


Set rst = Me.RecordsetClone



With rst
If Not .BOF Then
.MoveFirst


Do Until .EOF

Select Case ContratType

Case "Bénévole":
DoCmd.OpenReport "RptContratBenevole", acViewPreview
Me.ContratSend = True


Case "Bénévole/défrayé":
DoCmd.OpenReport "RptContratBenevDef", acViewPreview
Me.ContratSend = True


Case "Chauffeur":
DoCmd.OpenReport "RptContratChauffeur", acViewPreview
Me.ContratSend = True

.MoveNext
End With
End Select
End If

End Function




--
Voilou !
Cordialement,

Ze Titi










Avatar
ze Titi
Quel est le message d'erreur complet ? Parce que "Error" ne nous avance
pas à grand chose. Le déboggage t'amène sur quelle ligne ?

Dans ton message <# du mardi
Re,

ça commence à tourner.
Les filtre de CASE n'était pas bon.

Maintenant, il me met "error" comme s'il n'avait pas de records..

J'en reviens donc à la partie recordset...
Fastidieux hein ;-)

Mais merci à vous deux

"WhoIsPerfect ?" wrote in message
news:45acbb3a$0$18998$
Hello fth & Ze Titi,

Fth, reprenons un peu l'ordre des choses ;o)..

Ce que tu décris, n'est pas une "function", mais plutôt un "Sub" car tu
veux y mettre un événement dessus (OnClick).
Ex de function :
Function Add(a,b)
Add = a + b
End function
Ensuite, dans une procédure (Sub), tu peux utiliser la fonction :
toto = Add(1,2) (toto sera égal à 3 (1+2)) :O)..

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

Dans un deuxième temps. Que veux-tu faire exactement ???..

1°) Passer sur tous les contrôles de ton formulaire (Si tel est le cas, ton
recordset n'a qu'une seule ligne, donc le Do...Loop ne te sert à rien) ;o).
2°) Passer sur tous les enregistrements d'une table/requête..

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

@ de suite ;o)
Olivier.


"ze Titi" a écrit dans le message de
news:
As-tu pris en compte les modifs suggérées par Whoisperfect ? As-tu ajouté
le .MoveLast ?


Dans ton message <# du mardi
Bonjour et merci pour vos piste.

J'appelle la fonction sur click de mon bouton mais il ne se passe rien
...
Je copie donc le code directement sur le click, idem..

mon recorset est il juste?
...
merci

Frederic

"fth" wrote in message
news:O%
Bonjour,

le code suivant me donne du fil a retordre :-(
j'ai un peu de mal à mettre de l'ordre dans la succession des "end" en
sortie...
LE code doit:
1. prendre comme recordset celui qui s'affiche à l'écran;
2. aller au début de la liste;
3. choisir le bon contrat;
4. refaire l'opération jusqu'à la fin

d'avance merci pour votre aide
Frédéric

Private Function ContratPrintList()


Dim rst As Recordset
'Dim stlink As String

'If ContratSend = True Then
'MsgBox "Contrat déjà rédigé", vbInformation, "Contrat"


Set rst = Me.RecordsetClone



With rst
If Not .BOF Then
.MoveFirst


Do Until .EOF

Select Case ContratType

Case "Bénévole":
DoCmd.OpenReport "RptContratBenevole", acViewPreview
Me.ContratSend = True


Case "Bénévole/défrayé":
DoCmd.OpenReport "RptContratBenevDef", acViewPreview
Me.ContratSend = True


Case "Chauffeur":
DoCmd.OpenReport "RptContratChauffeur", acViewPreview
Me.ContratSend = True

.MoveNext
End With
End Select
End If

End Function




-- Voilou !
Cordialement,

Ze Titi








--
Voilou !
Cordialement,

Ze Titi





Avatar
fth
il n'y a pas d'erreur de code
seulement quand le report s'affiche, il met "error" là ou je devrais voir le
nom des personnes.

"ze Titi" wrote in message
news:
Quel est le message d'erreur complet ? Parce que "Error" ne nous avance
pas à grand chose. Le déboggage t'amène sur quelle ligne ?

Dans ton message <# du mardi
Re,

ça commence à tourner.
Les filtre de CASE n'était pas bon.

Maintenant, il me met "error" comme s'il n'avait pas de records..

J'en reviens donc à la partie recordset...
Fastidieux hein ;-)

Mais merci à vous deux

"WhoIsPerfect ?" wrote in message
news:45acbb3a$0$18998$
Hello fth & Ze Titi,

Fth, reprenons un peu l'ordre des choses ;o)..

Ce que tu décris, n'est pas une "function", mais plutôt un "Sub" car
tu veux y mettre un événement dessus (OnClick).
Ex de function :
Function Add(a,b)
Add = a + b
End function
Ensuite, dans une procédure (Sub), tu peux utiliser la fonction :
toto = Add(1,2) (toto sera égal à 3 (1+2)) :O)..

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

Dans un deuxième temps. Que veux-tu faire exactement ???..

1°) Passer sur tous les contrôles de ton formulaire (Si tel est le cas,
ton recordset n'a qu'une seule ligne, donc le Do...Loop ne te sert à
rien) ;o).
2°) Passer sur tous les enregistrements d'une table/requête..

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

@ de suite ;o)
Olivier.


"ze Titi" a écrit dans le message de
news:
As-tu pris en compte les modifs suggérées par Whoisperfect ? As-tu
ajouté le .MoveLast ?


Dans ton message <# du mardi
Bonjour et merci pour vos piste.

J'appelle la fonction sur click de mon bouton mais il ne se passe rien
...
Je copie donc le code directement sur le click, idem..

mon recorset est il juste?
...
merci

Frederic

"fth" wrote in message
news:O%
Bonjour,

le code suivant me donne du fil a retordre :-(
j'ai un peu de mal à mettre de l'ordre dans la succession des "end"
en sortie...
LE code doit:
1. prendre comme recordset celui qui s'affiche à l'écran;
2. aller au début de la liste;
3. choisir le bon contrat;
4. refaire l'opération jusqu'à la fin

d'avance merci pour votre aide
Frédéric

Private Function ContratPrintList()


Dim rst As Recordset
'Dim stlink As String

'If ContratSend = True Then
'MsgBox "Contrat déjà rédigé", vbInformation, "Contrat"


Set rst = Me.RecordsetClone



With rst
If Not .BOF Then
.MoveFirst


Do Until .EOF

Select Case ContratType

Case "Bénévole":
DoCmd.OpenReport "RptContratBenevole", acViewPreview
Me.ContratSend = True


Case "Bénévole/défrayé":
DoCmd.OpenReport "RptContratBenevDef", acViewPreview
Me.ContratSend = True


Case "Chauffeur":
DoCmd.OpenReport "RptContratChauffeur", acViewPreview
Me.ContratSend = True

.MoveNext
End With
End Select
End If

End Function




-- Voilou !
Cordialement,

Ze Titi








--
Voilou !
Cordialement,

Ze Titi









Avatar
ze Titi
C'est donc dans ton report que se situe l'erreur, pas dans le
recordset...
Plusieurs solutions:

Affiche d'abord ta requête et vérifie que ça n'est pas elle qui produit
l'erreur. Si ça n'est pas le cas, regarde les propriétés du champ en
erreur dans ton état.

Dis-nous !

Dans ton message <# du mardi
il n'y a pas d'erreur de code
seulement quand le report s'affiche, il met "error" là ou je devrais voir le
nom des personnes.

"ze Titi" wrote in message
news:
Quel est le message d'erreur complet ? Parce que "Error" ne nous avance pas
à grand chose. Le déboggage t'amène sur quelle ligne ?

Dans ton message <# du mardi 16/01/2007
Re,

ça commence à tourner.
Les filtre de CASE n'était pas bon.

Maintenant, il me met "error" comme s'il n'avait pas de records..

J'en reviens donc à la partie recordset...
Fastidieux hein ;-)

Mais merci à vous deux

"WhoIsPerfect ?" wrote in message
news:45acbb3a$0$18998$
Hello fth & Ze Titi,

Fth, reprenons un peu l'ordre des choses ;o)..

Ce que tu décris, n'est pas une "function", mais plutôt un "Sub" car
tu veux y mettre un événement dessus (OnClick).
Ex de function :
Function Add(a,b)
Add = a + b
End function
Ensuite, dans une procédure (Sub), tu peux utiliser la fonction :
toto = Add(1,2) (toto sera égal à 3 (1+2)) :O)..

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

Dans un deuxième temps. Que veux-tu faire exactement ???..

1°) Passer sur tous les contrôles de ton formulaire (Si tel est le cas,
ton recordset n'a qu'une seule ligne, donc le Do...Loop ne te sert à
rien) ;o).
2°) Passer sur tous les enregistrements d'une table/requête..

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

@ de suite ;o)
Olivier.


"ze Titi" a écrit dans le message de
news:
As-tu pris en compte les modifs suggérées par Whoisperfect ? As-tu
ajouté le .MoveLast ?


Dans ton message <# du mardi
Bonjour et merci pour vos piste.

J'appelle la fonction sur click de mon bouton mais il ne se passe rien
...
Je copie donc le code directement sur le click, idem..

mon recorset est il juste?
...
merci

Frederic

"fth" wrote in message
news:O%
Bonjour,

le code suivant me donne du fil a retordre :-(
j'ai un peu de mal à mettre de l'ordre dans la succession des "end" en
sortie...
LE code doit:
1. prendre comme recordset celui qui s'affiche à l'écran;
2. aller au début de la liste;
3. choisir le bon contrat;
4. refaire l'opération jusqu'à la fin

d'avance merci pour votre aide
Frédéric

Private Function ContratPrintList()


Dim rst As Recordset
'Dim stlink As String

'If ContratSend = True Then
'MsgBox "Contrat déjà rédigé", vbInformation, "Contrat"


Set rst = Me.RecordsetClone



With rst
If Not .BOF Then
.MoveFirst


Do Until .EOF

Select Case ContratType

Case "Bénévole":
DoCmd.OpenReport "RptContratBenevole", acViewPreview
Me.ContratSend = True


Case "Bénévole/défrayé":
DoCmd.OpenReport "RptContratBenevDef", acViewPreview
Me.ContratSend = True


Case "Chauffeur":
DoCmd.OpenReport "RptContratChauffeur", acViewPreview
Me.ContratSend = True

.MoveNext
End With
End Select
End If

End Function




-- Voilou !
Cordialement,

Ze Titi








-- Voilou !
Cordialement,

Ze Titi





--
Voilou !
Cordialement,

Ze Titi







Avatar
WhoIsPerfect ?
Peux tu nous envoyer ta base compactée et zippée, si tu le veux bien..
Mais je crains que dans ton recordset, il n'y ait rien ;o)



"ze Titi" a écrit dans le message de news:

C'est donc dans ton report que se situe l'erreur, pas dans le recordset...
Plusieurs solutions:

Affiche d'abord ta requête et vérifie que ça n'est pas elle qui produit
l'erreur. Si ça n'est pas le cas, regarde les propriétés du champ en
erreur dans ton état.

Dis-nous !

Dans ton message <# du mardi
il n'y a pas d'erreur de code
seulement quand le report s'affiche, il met "error" là ou je devrais voir
le nom des personnes.

"ze Titi" wrote in message
news:
Quel est le message d'erreur complet ? Parce que "Error" ne nous avance
pas à grand chose. Le déboggage t'amène sur quelle ligne ?

Dans ton message <# du mardi
Re,

ça commence à tourner.
Les filtre de CASE n'était pas bon.

Maintenant, il me met "error" comme s'il n'avait pas de records..

J'en reviens donc à la partie recordset...
Fastidieux hein ;-)

Mais merci à vous deux

"WhoIsPerfect ?" wrote in message
news:45acbb3a$0$18998$
Hello fth & Ze Titi,

Fth, reprenons un peu l'ordre des choses ;o)..

Ce que tu décris, n'est pas une "function", mais plutôt un "Sub"
car tu veux y mettre un événement dessus (OnClick).
Ex de function :
Function Add(a,b)
Add = a + b
End function
Ensuite, dans une procédure (Sub), tu peux utiliser la fonction :
toto = Add(1,2) (toto sera égal à 3 (1+2)) :O)..

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

Dans un deuxième temps. Que veux-tu faire exactement ???..

1°) Passer sur tous les contrôles de ton formulaire (Si tel est le
cas, ton recordset n'a qu'une seule ligne, donc le Do...Loop ne te
sert à rien) ;o).
2°) Passer sur tous les enregistrements d'une table/requête..

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

@ de suite ;o)
Olivier.


"ze Titi" a écrit dans le message de
news:
As-tu pris en compte les modifs suggérées par Whoisperfect ? As-tu
ajouté le .MoveLast ?


Dans ton message <# du mardi
Bonjour et merci pour vos piste.

J'appelle la fonction sur click de mon bouton mais il ne se passe
rien ...
Je copie donc le code directement sur le click, idem..

mon recorset est il juste?
...
merci

Frederic

"fth" wrote in message
news:O%
Bonjour,

le code suivant me donne du fil a retordre :-(
j'ai un peu de mal à mettre de l'ordre dans la succession des "end"
en sortie...
LE code doit:
1. prendre comme recordset celui qui s'affiche à l'écran;
2. aller au début de la liste;
3. choisir le bon contrat;
4. refaire l'opération jusqu'à la fin

d'avance merci pour votre aide
Frédéric

Private Function ContratPrintList()


Dim rst As Recordset
'Dim stlink As String

'If ContratSend = True Then
'MsgBox "Contrat déjà rédigé", vbInformation, "Contrat"


Set rst = Me.RecordsetClone



With rst
If Not .BOF Then
.MoveFirst


Do Until .EOF

Select Case ContratType

Case "Bénévole":
DoCmd.OpenReport "RptContratBenevole", acViewPreview
Me.ContratSend = True


Case "Bénévole/défrayé":
DoCmd.OpenReport "RptContratBenevDef", acViewPreview
Me.ContratSend = True


Case "Chauffeur":
DoCmd.OpenReport "RptContratChauffeur", acViewPreview
Me.ContratSend = True

.MoveNext
End With
End Select
End If

End Function




-- Voilou !
Cordialement,

Ze Titi








-- Voilou !
Cordialement,

Ze Titi





--
Voilou !
Cordialement,

Ze Titi











1 2