OVH Cloud OVH Cloud

Passer par tous les controles

5 réponses
Avatar
JC
Bonjour,

Comment peut-on passer par tous les controles d'un sous-formulaire en une
seule fois sans avoir à écrire:
forms!nomf!nomsf.form!Nomcontrole.setfocus
forms!nomf!nomsf.form!Nomcontrole.setfocus etc....

J'en ai besoin parceque à chaque entrée j'ai un évènement.

Merci

5 réponses

Avatar
Patrice
Bonjour,

Tu peux essayer de nommer les champs du sous formulaire par exemple
C1 C2 C3 C4 .....
puis
for x =1 to nbre de champs
forms!nomf!nomsf.form("C" & x).setfocus
next



Bonjour,

Comment peut-on passer par tous les controles d'un sous-formulaire en une
seule fois sans avoir à écrire:
forms!nomf!nomsf.form!Nomcontrole.setfocus
forms!nomf!nomsf.form!Nomcontrole.setfocus etc....

J'en ai besoin parceque à chaque entrée j'ai un évènement.

Merci





Avatar
Gafish
Bonjour,

JC wrote:
Bonjour,

Comment peut-on passer par tous les controles d'un sous-formulaire en
une seule fois sans avoir à écrire:
forms!nomf!nomsf.form!Nomcontrole.setfocus
forms!nomf!nomsf.form!Nomcontrole.setfocus etc....



Tu peux boucler sur tous les contrôles comme suit :

Dim ctl As Control
For Each ctl In Me.Controls
.......
Next

Tu peux également faire des tests, par exemple peut être que dans ton cas tu
ne veux boucler que sur les zones de textes, tu peux alors ajouter dans ton
for le test :
If ctl.ControlType = acTextBox

Arnaud

--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
(¯`·.,,.- [ Dave ] -.,,.·´¯)
Mdr !!!!
:(
Fish m'a piqué ma réponse !!! ma connection faisait chier et j'ai pas pu la
transmettre :( OK JC l'idée de Fish est la bonne prend là je l'utilise aussi
fréquement !
@+
Et Merci Fish on se complete !!

"Gafish" wrote:

Bonjour,

JC wrote:
Bonjour,

Comment peut-on passer par tous les controles d'un sous-formulaire en
une seule fois sans avoir à écrire:
forms!nomf!nomsf.form!Nomcontrole.setfocus
forms!nomf!nomsf.form!Nomcontrole.setfocus etc....



Tu peux boucler sur tous les contrôles comme suit :

Dim ctl As Control
For Each ctl In Me.Controls
........
Next

Tu peux également faire des tests, par exemple peut être que dans ton cas tu
ne veux boucler que sur les zones de textes, tu peux alors ajouter dans ton
for le test :
If ctl.ControlType = acTextBox

Arnaud

--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






Avatar
JC
Merci mais en fait je vais reposter la question d'une autre façon.
Voilà ma procédure:


Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Reference =
Me.Reference
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!ReferenceCommande
= Me.NumeroLien
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form.Quantite =
Me.solde
Forms!fen_entetelivraisonclient.SetFocus
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.SetFocus
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Reference.SetFocus
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Designation.SetFocus
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!PuHT.SetFocus
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Quantite.SetFocus
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!PuTTC.SetFocus
Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!TotalTTC.SetFocus
DoCmd.GoToRecord , , acNewRec

J'ai un form et son sousform. J'ouvre un form indépendant. Sur un clique
d'un de ses champs je fais tout ça.
Je voudrais qu'à la fin il se mette en attente sur le premier champ d'un
nouvel enregistrement de mon sous-formulaire et attendre que
recommence.
J'espère que j'ai été assez clair car j'y suis depuis plusieurs jours.

Merci encore


"Gafish" a écrit dans le message de news:
%
Bonjour,

JC wrote:
Bonjour,

Comment peut-on passer par tous les controles d'un sous-formulaire en
une seule fois sans avoir à écrire:
forms!nomf!nomsf.form!Nomcontrole.setfocus
forms!nomf!nomsf.form!Nomcontrole.setfocus etc....



Tu peux boucler sur tous les contrôles comme suit :

Dim ctl As Control
For Each ctl In Me.Controls
.......
Next

Tu peux également faire des tests, par exemple peut être que dans ton cas
tu
ne veux boucler que sur les zones de textes, tu peux alors ajouter dans
ton
for le test :
If ctl.ControlType = acTextBox

Arnaud

--
Charte du forum : http://users.skynet.be/mpfa/
Recherche dans les archives :
http://groups.google.fr/group/microsoft.public.fr.access?hl=fr





Avatar
3stone
Salut,

"JC"
| Voilà ma procédure:

| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Reference =
| Me.Reference
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!ReferenceCom mande
| = Me.NumeroLien
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form.Quantite =
| Me.solde
| Forms!fen_entetelivraisonclient.SetFocus
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.SetFocus
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Reference.Se tFocus
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Designation. SetFocus
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!PuHT.SetFocu s
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!Quantite.Set Focus
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!PuTTC.SetFoc us
| Forms!fen_entetelivraisonclient!sf_LigneLivraisonClient.Form!TotalTTC.Set Focus
| DoCmd.GoToRecord , , acNewRec
|
| J'ai un form et son sousform. J'ouvre un form indépendant. Sur un clique
| d'un de ses champs je fais tout ça.


Heu... tu pourrais expliquer à quoi cela peut bien servir, que de faire
voyager le focus d'un contrôle à l'autre ??



| Je voudrais qu'à la fin il se mette en attente sur le premier champ d'un
| nouvel enregistrement de mon sous-formulaire et attendre que
| recommence.


après le

- envoi du focus sur le sous-formulaire
- docmd.GotoRecord,, acNewRec

il se retrouve "en attente" sur le premier sans rien faire de spécial...
à condition d'avoir mis le bon ordre dans la tabulation !
(menu Affichage, Ordre de tabulation)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw