Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2011, 20h29   #1
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 57
Points : 19
Points : 19
Par défaut COmment savoir si un controle de formulaire est verrouilé (locked) ou non

Bonjour à tous et meilleurs voeux 2011

Dans une boucle For Each je balaye tous les contrôles présents dans mon formulaire pour leur appliquer un traitement.
Sauf que je souhaiterai ne pas appliquer ce traitement aux contrôles ayant le statut verrouillé (propriété locked = True).

Comment peut-on réaliser cela simplement ? Avez-vous SVP une idée ?

Merci d'avance de votre aide
Cordialement
oracle7556
oracle7556 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 20h33   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 458
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 458
Points : 7 534
Points : 7 534
Code :
1
2
3
if not c.locked then
  'Ici ton traitement pour les contrôles déverrouillés.
end if
dans ta boucle devrait te permettre de ne traiter que les contrôle qui ne sont pas verrouillés.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 21h14   #3
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 57
Points : 19
Points : 19
Bonsoir marot_r

1 - Merci de ta réponse

2 - Désolé mais cette astuce ne marche pas...

Voici mon code :
Code :
1
2
3
4
5
6
Dim oCTRL as Control
For Each oCTRL In Forms(psFormCourant).Controls
    If Not oCTRL.Locked Then
       ...
    End if
Next
Quand j'exécute, je récupère le message d'erreur suivant :

Citation:
Erreur d'exécution '438'
Propriété ou Méthode non gérée par cet objet
????? Que faire ?
oracle7556 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 22h17   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 204
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 204
Points : 5 255
Points : 5 255
Salut,

La proposition de Marot est la bonne, seulement tu balayes tous les contrôles et donc forcément quand tu tombes sur une étiquette ou 1 bouton de commande il te dit que la méthode locked n'existe pas ce qui est parfaitement logique.

Il faut éliminer les étiquette, boutons de commandes et autres...

avec 1 code du style

Code :
1
2
3
4
5
6
7
8
Dim oCTRL As Control
For Each oCTRL In Forms(psFormCourant).Controls
    If Not (oCTRL.ControlType = acLabel) And Not (oCTRL.ControlType = acCommandButton) Then
       If Not oCTRL.Locked Then
          MsgBox ("non verrouillé")
       End If
    End If
Next
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/01/2011, 22h44   #5
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 57
Points : 19
Points : 19
Bonsoir User

Merci de ta réponse.
Je comprend mieux maintenant pourquoi cela ne marchait pas.
Dans tout les cas avec ton exemple cela résout mon problème.

Merci quand même aussi à marot_r qui effectivement avait donné le début de la bonne solution initialement.

Le post est donc résolu.

MERCI encore à tous les deux
Cordialement
oracle7556
oracle7556 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 14h00   #6
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 458
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 458
Points : 7 534
Points : 7 534
Oups, merci User.

J'avais en effet complètement oublié de tester le type de l'objet.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h07.


 
 
 
 
Partenaires

Hébergement Web