Partager via

Access : affichage liste déroulante

Anonyme
2022-07-31T07:51:37+00:00

Problème avec le comportement des listes déroulantes

Domaine : Microsoft ACCESS.

Je constate 2 comportements différents, selon que le champ cible est alimenté :

  1. Soit par une simple ‘Liste valeurs’ de ‘mots successifs’ (exemple :  Albert ; Bernard ; Charles ; Douglas ; Edward)
  2. Soit par une Table (ou query) sous-jacente (T_List of Names).

Voici la description des comportements que je rencontre quand le champ cible est défini comme ‘zone de Liste déroulante’. Bien entendu, j’ai veillé à ce que tous les mots commencent par une lettre différente (y compris dans la table).

Dans la solution ‘A’, il suffit de taper le 1^ière^ lettre (ex « B »), et la mot « Bernard » s’affiche immédiatement dans le champ cible. C’est précisément ce « comportement » que je souhaite obtenir. Bref OK pour la solution ‘A’.

Par contre, dans la solution ‘B’, le fait de taper une lettre (ex « B »), ne suffit pas pour que le mot correspondant soit affiché immédiatement. Il est nécessaire de déplacer le curseur sur la ‘flèche’ du champ cible, puis de parcourir la liste, puis de cliquer sur le mot choisi, et enfin ce mot est affiché dans le champ cible. C’est ce comportement que je souhaite éviter, puisque tous les mots de la liste commencent par une lettre différente.

Note :

  • Ce problème existe tant pour les champs installés dans les TABLES, que pour les FORMS.
  • Le setting « auto-extend = OUI” ne fonctionne pas.

Ma demande consiste donc à savoir comment activer ce comportement d’affichage immédiat, même quand la source de la liste est une table ou query.

  • Soit par un setting spécifique dans la création du champs cible
  • Soit par un code VBA (ou SQL) qui peut générer cet affichage immédiat
  • Soit par l’installation d’un ‘complément d’application’…. Lequel ? et comment le trouver ?

Je vous remercie pour votre bonne attention sur ce sujet.

Microsoft 365 et Office | y accéder | Other | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

6 réponses

  1. Hecatonchire 53,455 Points de réputation Modérateur bénévole
    2022-08-02T11:32:33+00:00

    Je n'ai rien trouvé de précis !

    • J'ai créé une liste à partir de ta table =>même comportement
    • J'ai comparé les propriétés du contrôle, du formulaire, de la base sans succès !
    • J'ai re compacter ta base =>même comportement
    • J'ai importer une table dans ta base =>même comportement
    • J'ai créé un base vierge et importé une de tes tables +formulaire => CA MARCHE !
    • Dans la base vierge, j'ai créé un formulaire => CA MARCHE !
    • Dans ta base, j'ai créé un formulaire => même comportement !

    Cela indiquerait que le pb vient de la base !

    Tentes un réparation Office puis re-teste sur une nouvelle base

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Hecatonchire 53,455 Points de réputation Modérateur bénévole
    2022-08-02T10:08:22+00:00

    Bonjour

    Je viens de tester je n'ai pas de problème ! J'ai même fermer/ouvert Access.

    Partages ta base ou une base test ayant ce problème via un cloud ou un site comme http://www.cjoint.com ou https://www.swisstransfer.com/fr

    Tu obtiendras une adresse/lien qu'il faudra publier/poster ici dans un message.

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  3. Hecatonchire 53,455 Points de réputation Modérateur bénévole
    2022-07-31T17:31:49+00:00

    Bonjour

    Je n'ai pas ce comportement

    Attention ce n'est pas auto-extend (Onglet Format/Autoextensible) mais AutoExpand (onglet Données/Auto étendre).

    Ce n'est pas pareille !

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  4. Anonyme
    2022-08-02T10:28:56+00:00

    Merci Arnaud pour cette rapide réaction.

    Voici le lien sur cjoint. https://www.cjoint.com/c/LHckvZR8M5I J'espère que une explication sortira de ce fichier.

    Gnyal

    0 commentaires Aucun commentaire
  5. Anonyme
    2022-08-02T06:53:48+00:00

    Modification : les images ont été perdues dans la réponse.

    Merci Hecatonchire pour ta réponse rapide.

    Je vérifie donc d'abord le setting "Auto étendre'.

    Il est le même sur mon projet : auto étendre = 'oui'.

    Mais, le problème reste présent, comme décrit ci-dessous. Voici le déroulé de mes tests et essais :

    1. J'effectue un nouvel essai; en créant une nouvelle table, un nouvelle query, et son 'texte' en SQL.
      et en créant un NOUVEAU FORMULAIRE (vide).
    2. J'y insère un nouveau champs '"TEXTE0"

    Modification de son statut en "zone de liste déroulante"

    Assignation de ce champs à son contenu : table "T_Test_Liste_Déroulante"

    Le statut 'auto étendre' = oui, par défaut.

    1. Les mots de la table commencent tous par une lettre différente, afin de permettre l'affichage immédiat dès la frappe d'une lettre.
      Dès l'assignation de cette table au champs 'liste déroulante', je teste la lettre 'a'. Et l'affichage immédiat du mot entier est exécuté 'correctement'.
      (idem que l'exemple fourni par Hécatonchires).

    J'insiste sur le fait qu'à ce stade, nous sommes dans la phase de création de ces champs 'Liste déroulante' en liaison avec la source (table, query ou SQL).

    1. Ensuite, je sauve le formulaire, puis le ferme, puis je sors du projet Access en cours.

    Puis je le réouvre, et je reteste ce champs. Je tape une lettre, mais ici le champ reste avec cette lettre seule.
    Ici, aucun affichage immédiat.
    Seule la lettre s'affiche. Pas le mot qui lui correspond !

    1. Par ailleurs, je confirme que l'affichage immédiat reste OK - même après la réouverture du formulaire - si la source des mots est celle de la "liste de valeurs".
       
    2. On constate aussi que ces comportements sont parfaitement reproductibles et prévisibles :
      1. Comportement OK juste après la création de l'objet Liste Déroulante
      2. Comportement NON OK après fermeture et ouverture du formulaire
      3. Comportement toujours OK quand la source est une "Liste de valeurs" (et pas une table).

    Conclusions :

    1. la fonction d'affichage fonctionne 'correctement' lors de la création du champs, et de sa liaison avec la source.
    2. Mais ensuite, après de la réouverture du formulaire, l'affichage immédiat ne fonctionne plus.
      Bien que le lien avec la source 'Table' est bien actif, puisqu'il suffit de cliquer sur le bouton 'V' pour afficher la liste des éléments de la table.

    "Strange, isn't it!"

    Questions :

    1. Pour quelle raison l'affichage immédiat fonctionne-t-il lors de la création du champs dans sa version 'liste déroulante' basé sur une source externe (table) ?
    2. Pour quelle raison l'affichage immédiat ne fonctionne-t-il plus après la réouverture du formulaire ?
      (or le lien avec la table reste 'actif').

    Réflexions :

    1. Je me demande si un complément d'application n'est pas nécessaire.
    2. Alternativement, un code VBA, activé à chaque FOCUS sur le champs, ne pourrait-il pas "forcer" la liaison entre le champs et sa source ?
    3. Serait-ce un bug ?

    Merci d'avance pour toute réflexion et ou solution à ce problème.

    0 commentaires Aucun commentaire