[Access] Liste déroulante à cacher si vide

Résolu/Fermé
Signaler
Messages postés
24
Date d'inscription
mercredi 28 avril 2010
Statut
Membre
Dernière intervention
16 juillet 2010
-
 lily -
Bonjour,

J'ai créé un formulaire avec 4 listes déroulantes liées.
Selon ce qui a été rempli dans la deuxième ou troisième liste, la liste déroulante suivante peut ne rien proposer.
Ma question est de savoir si il est possible de masquer les listes déroulantes qui sont vides.
J'ai essayé de noter le code suivant sur l'événement "Après Mise a Jour" de la deuxième liste :

If Not IsNull([Designation3]) Then
[Designation3].Visible = True
Else
[Designation3].Visible = False
[Designation4].Visible = False
End If

Cela ne fonctionne pas : puisque le champ n'est pas encore rempli, même lorsqu'il y a des propositions dans les listes déroulantes, elles ne s'affichent pas.
Je ne sais pas si tout est clair.
Merci d'avance pour vos conseils.

4 réponses

Messages postés
23778
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
26 novembre 2021
3 147
Salut,

une zone de liste peut renvoyer une valeur nulle si rien n'est saisi, mais si elle ne contient rien (aucune valeur source), elle n'a pas la valeur null.

Dans ton cas, il faut tester le nombre de valeurs qu'elle contient avec listcount.

If [Designation3].ListCount = 0 then 
    [Designation3].visible = false 
    ...



A+ Blux
 "Les cons, ça ose tout. 
C'est même à ça qu'on les reconnait"
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
111
Bonjour ETSSieb,


Pour contourner la difficulté, il est possible de demander un affichage par défaut dans la zone de liste pour éviter un champ vide.
Des points de suspension devraient faire l'affaire ....

Cordialement
Messages postés
24
Date d'inscription
mercredi 28 avril 2010
Statut
Membre
Dernière intervention
16 juillet 2010

Bonjour,

Je viens d'essayer le code qui m'a été proposé : ca ne fonctionne pas :-(
Je ne sais pas si je l'ai mal inséré.
Il aurait fallu que j'insère ce code sous la propriété "Après Mise à Jour" de Désignation 2?
C'est ce que j'ai fait mais sans succès...
Help Please
Messages postés
24
Date d'inscription
mercredi 28 avril 2010
Statut
Membre
Dernière intervention
16 juillet 2010

C'est assez curieux : je pense que l'affichage ne se met pas à jour intéractivement:

Si je remplis le champ "Désignation" et "Désignation2" pour lesquels il existe des propositions dans Désignation 3 et 4, la boite de dialogue affiche la valeur correcte et les listes déroulantes sont visibles.
Par contre, en restant sur la même fiche, si je modifie les premières désignations pour qu'il n'y ait aucune proposition possible sur les désignations suivantes, la boite de dialogue affiche d'abord la valeur de la première fois. Lorsque je modifie une nouvelle fois les premières désignations, la boite de dialogue affiche 0 et les listes déroulantes 3 et 4 s'effacent.
Mais le problème est qu'elles ne réapparaissent plus du tout, même lorsque je modifie les premières désignations pour lesquelles il y a des propositions.
Je ne sais pas ce qui cloche...
Messages postés
23778
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
26 novembre 2021
3 147
Mais le problème est qu'elles ne réapparaissent plus du tout, même lorsque je modifie les premières désignations pour lesquelles il y a des propositions.
Dans ce cas, qu'affiche la boite de dialogue ?
Messages postés
24
Date d'inscription
mercredi 28 avril 2010
Statut
Membre
Dernière intervention
16 juillet 2010

Elle affiche 0 et je sais pourquoi :
Il me faut sans cesse ouvrir la liste déroulante suivante pour que la boite de dialogue prenne les valeurs correctes. La vérif se fait donc en 2 étapes :

Je remplis désignation2 d'une valeur. Là, la boite de dialogue affiche le nombre de propositions de l'ancienne valeur de Désignation2. Il me faut donc ouvrir la Désignation3 et revenir sélectionner la même valeur sur Désignation2 pour que le nombre correct s'affiche dans la boite de dialogue.
D'où l'impossibilité de faire apparaitre les Désignations pour lesquelles des propositions existent lorsqu'elles ont déjà disparu.
Je ne sais pas si c'est clair, mais je pense que si la liste déroulante s'ouvre automatiquement, le problème devrait se résoudre? Le tout est de savoir comment.
Messages postés
23778
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
26 novembre 2021
3 147
essaye de faire un [Designation3].requery avant de tester le nombre de valeurs.
Messages postés
24
Date d'inscription
mercredi 28 avril 2010
Statut
Membre
Dernière intervention
16 juillet 2010

C'est MERVEILLEUX !

Merci beaucoup !
ah enfin quelqu'un qui sait faire une liste déroulantes liées.j'ai réussi les 1ere étapes de ce site: http://www.info-3000.com/access/listerestreinte/index.php
mais le souci je bloque à l'étape 9 je ne comprend le faite de glisser les info. sa serai vraiment gentil de me m'aider car c'est pour mon travail et la je bloque beaucoup
Merci d'avance c(est URGENT !!