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

10 réponses

1 2
Avatar
ze Titi
Bonjour fth

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
End Select
.MoveNext
Loop
End If
End With
End Function

L'ordre de fermeture des conditions, boucles, etc... se fait dans
l'ordre inverse de l'ouverture. Dernier ouvert -> premier fermé.



Dans ton message <O# du mardi
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
WhoIsPerfect ?
Hello Ze Titi,

Juste un p'tit truc pour ton code. Pourquoi mets tu "If Not.BOF then
.MoveFirst" ???..
Si tu mets directement ".MoveFirst", tu seras au premier enregistrement.
Cette condition est donc pas nécessaire ;o)

P'tites infos.
- Si tu ne sors pas de ta boucle, utilise plutôt "While...Wend" au
lieu de "Do...Loop", c'est + rapide ;o)
- Aide toi des retraits (tabulation) dans ton code, cela t'aidera
grandement ;oD (Regarde ton code avec les retraits)


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
MoveFirst
While Until .EOF
.Edit
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
End Select
.MoveNext
Wend
End With
End Function



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

Bonjour fth

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
End Select
.MoveNext
Loop
End If
End With
End Function

L'ordre de fermeture des conditions, boucles, etc... se fait dans l'ordre
inverse de l'ouverture. Dernier ouvert -> premier fermé.



Dans ton message <O# du mardi
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
Bonjour WhoIsPerfect ?

Je n'ai fait que reprendre le code de fth. Ceci étant dit, il est
évident que j'aurais sûrement fait la chose que tu proposes. J'aurais
même ajouté un

.MoveLast
avant le
.MoveFirt 'sans oublier le . avant...

Par contre, ton While until .EOF me semble curieux... While not .EOF
irait mieux, non ?


Dans ton message <45aca559$0$21119$ du mardi
Hello Ze Titi,

Juste un p'tit truc pour ton code. Pourquoi mets tu "If Not.BOF then
.MoveFirst" ???..
Si tu mets directement ".MoveFirst", tu seras au premier enregistrement.
Cette condition est donc pas nécessaire ;o)

P'tites infos.
- Si tu ne sors pas de ta boucle, utilise plutôt "While...Wend" au
lieu de "Do...Loop", c'est + rapide ;o)
- Aide toi des retraits (tabulation) dans ton code, cela t'aidera
grandement ;oD (Regarde ton code avec les retraits)


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
MoveFirst
While Until .EOF
.Edit
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
End Select
.MoveNext
Wend
End With
End Function



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

Bonjour fth

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
End Select
.MoveNext
Loop
End If
End With
End Function

L'ordre de fermeture des conditions, boucles, etc... se fait dans l'ordre
inverse de l'ouverture. Dernier ouvert -> premier fermé.



Dans ton message <O# du mardi
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
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



Avatar
ze Titi
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
fth
Re bonjour,

voici le code dans l'état actuel des choses:
1. Ceci dit, je ne comprend pas bien pourquoi aller au bout, revenir au
premier puis exécuter le code.
2. j'appelle donc le code par ContratPrintList


Private Function ContratPrintList()
Dim rst As Recordset
Dim stlink As String

Set rst = Me.RecordsetClone

With rst
.MoveLast
.MoveFirst
While .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

End Select
.MoveNext
Wend
End With
End Function



"ze Titi" wrote in message
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
le .MoveLast est utile pour initialiser le recordset à sa taille
complète.

Corrige ton
While .EOF
en
While Not .EOF


Dans ton message <eY# du mardi
Re bonjour,

voici le code dans l'état actuel des choses:
1. Ceci dit, je ne comprend pas bien pourquoi aller au bout, revenir au
premier puis exécuter le code.
2. j'appelle donc le code par ContratPrintList


Private Function ContratPrintList()
Dim rst As Recordset
Dim stlink As String

Set rst = Me.RecordsetClone

With rst
.MoveLast
.MoveFirst
While .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

End Select
.MoveNext
Wend
End With
End Function



"ze Titi" wrote in message
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
WhoIsPerfect ?
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
fth
Re bonjor,

Comment ça mon recordset n'a qu'une seule ligne?
la, je te suis plus..

Situation:
j'ai FcontratList (form)et qq controles de sélection.
Dans la partie "details" de ma form, les champs.
Je fais une sélection (par ex. tous les benevoles)
j'ai alors une liste qui s'affiche avec tous les benevoles (par ex650
records.)

viens alors le code qui doit tous les passer

...

Frederic

"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
fth
Re ;-)

faisant suite à ta remarque, j'a idonc copier le code directement dans ma
sub
même résultat. Il ne se passe rien

Grrr

"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










1 2