[Access] Liste déroulante à cacher si vide

Résolu
ETSSieb Messages postés 31 Statut Membre -  
 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

  1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
  2. Jean_Jacques Messages postés 1045 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
  3. ETSSieb Messages postés 31 Statut Membre
     
    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
    1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    2. ETSSieb Messages postés 31 Statut Membre
       
      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
    3. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
    4. ETSSieb Messages postés 31 Statut Membre
       
      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
    5. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
  4. 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