[Access] Liste déroulante à cacher si vide

Résolu
ETSSieb Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
 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.
A voir également:

4 réponses

blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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   Statut Membre Dernière intervention   112
 
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   Statut Membre Dernière intervention  
 
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 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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   Statut Membre Dernière intervention  
 
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 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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   Statut Membre Dernière intervention  
 
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 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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
lily
 
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