Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 28/10/2011, 09h56   #1
Invité régulier
 
Homme
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 5
Points : 5
Par défaut Verrouiller un champ de formulaire

Bonjour à tous,

Est il possible de verouiller un champ dans un formulaire.

Je m'explique : j'ai dans un formulaire, une liste déroulante liée à une table. Je voudrais que selon le choix effectué dans cette liste deroulante, une autre liste soit (ou non) inaccessible.
Exemple :
Si dans la liste 1 (comportant A, B, C, D,...), je choisis A alors, je peux utiliser la liste déroulante 2. Si je n'ai pas choisi A, alors cette liste 2 est "verrouillée" et je ne peux l'utiliser.

Merci de votre aide.... et une fois de plus : SUPER FORUM
gsacre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 12h12   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 256
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 256
Points : 1 872
Points : 1 872
Bonjour,

Petit code qui répond à l'exemple :
Code :
1
2
3
private sub liste1_afterupdate
  liste2.locked = liste1<>"A"
end sub
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 14h05   #3
Invité régulier
 
Homme
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 5
Points : 5
OK....
... suis un peu débutant :

où dois je indiquer ce code et que dois je indiquer à la place de Liste1 ?

Merci, suis pressé de tester
gsacre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 14h24   #4
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 256
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 256
Points : 1 872
Points : 1 872
Dans le formulaire il doit y avoir 2 champs "liste1" et "liste2"

Mon code est une "procédure événementielle" qui fait partie des propriétés de liste1 et s'exécute automatiquement après chaque modification du champ. Il modifie une des propriétés de liste2...
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 14h40   #5
Invité régulier
 
Homme
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 5
Points : 5
OK, j'ai testé, cela fonctionne partiellement. Je m'explique :

J'ai mis comme valeur par défaut pour ma liste 1 = la valeur 1 et donc, si je ne clique pas dessus (ce qui n'est pas nécessaire si je veux avoir la valeur 1 dans ma table), il ne verrouille pas la liste 2. Par contre, si je clique sur la liste 1 et choisi la valeur 1, cela verrouille bien la liste 2

2ème soucis, je parviens à contourner ce verrouillage : en cliquant sur liste 1=1, je peux donc choisir une valeur de ma liste 2. Lorsque c'est fait, je peux revenir dans ma liste 1 et y choisir une autre valeur. J'ai donc Liste 1<>1 et Liste 2 avec une valeur.

Je voudrais que si Liste 1 <> 1, il soit impossible de mettre une valeur dans liste 2, par quelque moyen que ce soit.
J'espère être clair...
gsacre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 14h54   #6
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 256
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 256
Points : 1 872
Points : 1 872
1. dans le form_open, il faut initialiser liste1.locked à true ou false en fonction de la valeur initiale de liste2

2. dans liste1.afterupdate, il est possible de modifier liste2 en fonction de la valeur choisie. On peut aussi jouer sur liste2.visible
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h05   #7
Invité régulier
 
Homme
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 5
Points : 5
Ouch....

Là j'ai un peu de mal à comprendre.... où dois je encoder cela ? (et comment ?)

Merci pour tes réponses rapides.
gsacre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h53   #8
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 256
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 256
Points : 1 872
Points : 1 872
1. Le plus simple est de définir liste2 comme invisible dans ses propriétés initiales

2. nouveau code
Code :
1
2
3
4
private sub liste1_afterupdate
  liste2=null  'réinitialise liste2 à chaque chgt de liste1
  liste2.visible = (liste1="A")
end sub
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 11h11   #9
Invité régulier
 
Homme
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 5
Points : 5
Merci, cela verrouille bien ma liste 2 si je choisi une valeur autre que 1 dans ma liste 1, par contre, j'ai toujours le soucis suivant :

Si je ne choisi pas dans ma liste 1 la valeur 1 (ce que je ne fais normalement pas puisqu'elle apparait par défaut), la liste 2 reste verrouillée.

Avez vous une idée pour cela ??
gsacre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 12h06   #10
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 222
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 222
Points : 9 936
Points : 9 936
Envoyer un message via Skype™ à Domi2
Bonjour,

Utilise l'événement Sur activation du formulaire. Il se produit à l'ouverture du formulaire et à chaque changement d'enregistrement.

Code :
1
2
3
4
5
Private Sub Form_Current()
 
    liste2.locked = liste1<>"A"
 
End Sub
Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 09h52   #11
Invité régulier
 
Homme
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 5
Points : 5
SUPER. Cela fonctionne parfaitement

Grand merci.
gsacre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h04.


 
 
 
 
Partenaires

Hébergement Web