OVH Cloud OVH Cloud

Compter les enregistrements d'un formulaire et de ses sous formula

3 réponses
Avatar
JPG
Bonjour,

Afin de me ballader dans tous les enregistrements de mon formulaire et de
ses sous formulaires, j'aimerais intégrer quelque chose à l'intérieur de ce
code :

Public Function LesControles(MonForm As Object)
'Object permet de traiter les sous form comme un form alors que Form ne le
peut pas

Dim Ctl As Control
For Each Ctl In MonForm.Controls
If Ctl.ControlType = acSubform Then
'ici je relance la fonction si mon contrôle est un sous form
SousForm = LesControles(Ctl)
End If
Next Ctl

Avec MonForm (au départ) étant le nom de mon formulaire principal.

A l'intérieur du form et des sous form, je peux avoir plusieurs
enregistrements.

J'ai essayé "Domd.gotorecord,, acNext" mais je ne sais pas comment m'arréter
car CurrentRecord ne fonctionne pas sur MonForm étant donné qu'il s'agit d'un
Object.

Existe-t-il un autre moyen ?

Merci beaucoup pour votre aide.

3 réponses

Avatar
3stone
Salut,

"JPG"
| Afin de me ballader dans tous les enregistrements de mon formulaire et de
| ses sous formulaires, j'aimerais intégrer quelque chose à l'intérieur de ce
| code :
|
| Public Function LesControles(MonForm As Object)
| 'Object permet de traiter les sous form comme un form alors que Form ne le
| peut pas
|
| Dim Ctl As Control
| For Each Ctl In MonForm.Controls
| If Ctl.ControlType = acSubform Then
| 'ici je relance la fonction si mon contrôle est un sous form
| SousForm = LesControles(Ctl)
| End If
| Next Ctl
[...]


Dans l'objet, tu parle de compter les enregistrements !
et dans le code, tu boucle sur les controles...

Quid ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
JPG
Bonsoir,

En fait s'il ne s'agissait que d'un seul formulaire, j'aurais utilisé :

i=1
docmd.gotorecord, , aclast
j=Me.currentrecord
Do while i < j
(...MonExecution...)
docmd.gotorecord, , i
i = i + 1
Loop

seule manière (avec mon faible niveau) de faire le tour des enregistrements.

Compter le nombre d'enregistrements total me permettrait d'arrêter ma boucle.

Mais s'il y avait une manière pour que "j" soit le nombre total
d'enregistrements de mon form et/ou de mon sous form (en tant qu' Object), je
l'utiliserais bien volontiers.


Merci !







Salut,

"JPG"
| Afin de me ballader dans tous les enregistrements de mon formulaire et de
| ses sous formulaires, j'aimerais intégrer quelque chose à l'intérieur de ce
| code :
|
| Public Function LesControles(MonForm As Object)
| 'Object permet de traiter les sous form comme un form alors que Form ne le
| peut pas
|
| Dim Ctl As Control
| For Each Ctl In MonForm.Controls
| If Ctl.ControlType = acSubform Then
| 'ici je relance la fonction si mon contrôle est un sous form
| SousForm = LesControles(Ctl)
| End If
| Next Ctl
[...]


Dans l'objet, tu parle de compter les enregistrements !
et dans le code, tu boucle sur les controles...

Quid ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
Eric
Bonjour,


If Ctl.ControlType = acSubform Then
j = Ctl.Form.RecordsetClone.RecordCount
...
End if

Bonsoir,

En fait s'il ne s'agissait que d'un seul formulaire, j'aurais utilisé :

i=1
docmd.gotorecord, , aclast
j=Me.currentrecord
Do while i < j
(...MonExecution...)
docmd.gotorecord, , i
i = i + 1
Loop

seule manière (avec mon faible niveau) de faire le tour des enregistrements.

Compter le nombre d'enregistrements total me permettrait d'arrêter ma boucle.

Mais s'il y avait une manière pour que "j" soit le nombre total
d'enregistrements de mon form et/ou de mon sous form (en tant qu' Object), je
l'utiliserais bien volontiers.


Merci !








Salut,

"JPG"
| Afin de me ballader dans tous les enregistrements de mon formulaire et de
| ses sous formulaires, j'aimerais intégrer quelque chose à l'intérieur de ce
| code :
|
| Public Function LesControles(MonForm As Object)
| 'Object permet de traiter les sous form comme un form alors que Form ne le
| peut pas
|
| Dim Ctl As Control
| For Each Ctl In MonForm.Controls
| If Ctl.ControlType = acSubform Then
| 'ici je relance la fonction si mon contrôle est un sous form
| SousForm = LesControles(Ctl)
| End If
| Next Ctl
[...]


Dans l'objet, tu parle de compter les enregistrements !
et dans le code, tu boucle sur les controles...

Quid ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/





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