[Access] Liste déroulante à cacher si vide

Résolu/Fermé
ETSSieb Messages postés 24 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 16 juillet 2010 - 26 mai 2010 à 08:37
 lily - 4 févr. 2011 à 17:12
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

blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
Modifié par blux le 26/05/2010 à 08:57
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"
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
26 mai 2010 à 08:59
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
0
ETSSieb Messages postés 24 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 16 juillet 2010
26 mai 2010 à 09:21
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
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
26 mai 2010 à 09:38
ca ne fonctionne pas :-(
Quel est le problème ?
Quand remplis-tu les données à afficher dans les listes 3 et 4 ?

Colle ton code ici, qu'on voie ce qui peut coincer...
0
ETSSieb Messages postés 24 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 16 juillet 2010
26 mai 2010 à 09:44
Voilà mon code que j'ai inséré dans Après Màj de Désignation2 et dans Form(Current) :

If [Designation3].ListCount = 0 Then
[Designation3].Visible = False
[Designation4].Visible = False
Else
[Designation3].Visible = True
End If

Mes listes déroulantes sont liées entre elles. Je les ai créées avec la méthode "simple" par des tables et des requêtes, étant assez novice.
Le but est de remplir tous les champs dans la mesure du possible, donc s'il reste une proposition, il faut la renseigner.
Merci d'avance.
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
26 mai 2010 à 10:11
Le code est sans doute à mettre dans l'évènement 'sur changement' et non 'aprèsmaj'...

Tu n'as toujours pas dit quel était le problème et comment étaient constituées tes listes... (tu dis 'liées entre elles', oui, mais commennt ?)
0
ETSSieb Messages postés 24 Date d'inscription mercredi 28 avril 2010 Statut Membre Dernière intervention 16 juillet 2010
26 mai 2010 à 10:26
Mes listes déroulantes sont créées selon cette astuce :
http://www.info-3000.com/access/listerestreinte/index.php
C'est comme si dans Désignation on avait le Pays, Désignation2 la Région, Désignation3 le Département et Désignation4 la Ville.

Je viens d'insérer le code dans la propriété "Sur Changement" de Désignation2 pour que la Désignation3 ne s'affiche que si un choix est proposé.
Celà ne fonctionne toujours pas : Toutes mes listes déroulantes restent apparentes, même lorsqu'aucune proposition n'existe dans Désignation3 ou Désignation4.

N'hésite pas à me poser des questions s'il manque des compléments d'information.
0
blux Messages postés 25999 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
Modifié par blux le 26/05/2010 à 10:32
Donc on va faire afficher le nombre de valeurs qui sont proposées pour voir d'où peut venir le problème.

Rajoute
msgbox designation3.listcount
avant le test, pour voir la valeur renvoyée.
0
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 !!
0