Bloquer tous les champs à part UN [Résolu]

Signaler
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009
-
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009
-
Bonjour,

Je voudrais verrouiller tous les champs de mon formulaire de consultation sauf UN, une liste déroulante

Pour verrouiller tous les champs, j'entre ce code :

For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Then
Ctl.Locked = True
Ctl.Enabled = False
ElseIf Ctl.ControlType = acComboBox Then
Ctl.Locked = True
Ctl.Enabled = False
End If
Next Ctl

Et je voudrais donc pouvoir autoriser l'accès et la saisie d'un champ.
Je pensais donc mettre ce code :

For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Then
Ctl.Locked = True
Ctl.Enabled = False
ElseIf Ctl.ControlType = acComboBox Then
Ctl.Locked = True
Ctl.Enabled = False
End If
Next Ctl
Me."mon_champ".Enabled = true
Me."mon_champ".Locked = false

Mais ca ne marche pas  

Comment pourrais-je faire

Merci

rocky

- Un con qui marche ira plus loin qu'un intellectuel assis -

32 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
salut,

ta descrition me fait penser a un control activé mais locker. Dans ce cas il peut quand meme prendre le focus mais on ne peut rien faire.

Apres cette ligne:

Me.ld_recherche.Enabled = True

ajoute celle-ci  on ne sais jamais :

Me.ld_recherche.Locked = False

A+
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

Bonjour à tous,

J'ai éssayé d'ajouter cette ligne après le code
Me.ld_recherche.Locked = False

Me cela ne change rien du tout ...
Cela va faire deux jours que je suis sur ce problème ...
Je serais attentif à toutes vos réponses.

Cordialement,

rocky

- Un con qui marche ira plus loin qu'un intellectuel assis -
/FONT>
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

Résultat d'un test :
Si je supprime totalement la boucle FOR dans "consultation", cela ne change rien.
Toujours accès à la liste mais aucune selection possible.
Cela se reproduit également lorsque je copi le code de "modification" ...
Le problème n'ai pas dans la boucle alors ...

rocky
- Un con qui marche ira plus loin qu'un intellectuel assis -
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Tu n'aurais pas par hasard la propriété Locked sur True ??

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

une petite question :
Le fait que j'exécute le formulaire en mode consultation par exemple me bloquerais plusieurs champs. je ferme ce formulaire et je l'ouvre dans un autre mode, si les boutons ne sont pas réactivé à l'ouverture, ils sont toujours bloqués dans ce cas ?

/FONT>
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

Bon j'suis reparti d'une sauvegarde de ma base, j'a tout refait et ca marche cette fois-ci ...

Bon je sais pas ce qui n'allait pas mais là

Parcontre je voudrais mettre :

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
ForEach ctl InMe.ControlsSelectCase ctl.ControlTypeCase acTextBox, acComboBox, acCheckBox
ctl.Locked = TrueEndSelectNext ctl

<!-- END TEMPLATE: bbcode_code -->Dans un module afin d'appeler juste la procédure au lieu d'avoir à chaque fois le code.

comment dois-je faire ?

Si je met ce code dans un module et que je l'appel dans mon formulaire,
il y a une erreur a ce niveau là :
<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
Me.Controls
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

je remet correctement le premier code du message d'avant :

For Each ctl In Me.Controls
            Select Case ctl.ControlType
                Case acTextBox, acComboBox, acCheckBox
                    ctl.Locked = True
            End Select
        Next ctl

voilà :)
/FONT>
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

La réponse est clair !
Merci bien  :yaisse2:
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Encore à la bourre....

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

Oui un peu en retard mais mieux expliqué encore :-)

Merci ;-)

/FONT>
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009

juste un dernier petit truc,
ouvre mon formulaire "Ajout" comme ceci :

DoCmd.OpenForm "Saisie d'un comité d'engagement", , , , acFormAdd, , "ce_ajout"

Petit hic, le sous formulaire dedans ne s'ouvre pas en Ajout ...
Messages postés
55
Date d'inscription
mercredi 1 novembre 2006
Statut
Membre
Dernière intervention
16 avril 2009