IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Liste déroulante dynamique en cours de saisie


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Liste déroulante dynamique en cours de saisie
    Bonjour les Amis !

    Alors que dire sur cette question tellement elle m'a laissé pantois ...
    Mais n'étant pas un expert je bloque ^^

    - Base Ac-2010 simple.
    - Une liste non modifiable déroulante dans un formulaire. (les noms de voie)
    - Source de la liste une table

    Alors ma question bête :

    Lors de la saisie de texte dans le champ de la liste déroulante, elle nous propose, comme toujours, une filtration du début de valeur souhaitée.
    J'aurais souhaité qu'elle me propose des correspondances non limitées au début de la valeur contenu !

    Exemple au cas ou je n'aurais été explicite :

    Format de la valeur : rue Gambetta, Av Louis Luc, Qua du Hallage...
    Je cherche à Choisir la rue Gambetta par une saisie de GAM et que la liste me propose rue Gambetta, ou autre valeur contenant GAM !

    Voili Voila
    Merci beaucoup mes amis c'est toujours un plaisir de vous lire !!

    LaTomate

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    C'est le fonctionnement standard d'une liste déroulante.

    On doit pouvoir bricoler quelque chose pour que cela fasse ce que tu demandes.
    La source sera semblable à :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select TaSource.* from TaSource where TaSource like "*" & [Forms]![TonForm]![TaListe] & "*"

    Après tu mets du code dans la procédure événementielle associée à Sur changement et qui va faire :

    La liste déroulante va se réduire au fur et à mesure de ta frappe.

    Il faut probablement mettre la propriété autocomplete (Auto étendu) à Non
    et peut-être aussi "Limiter à la liste".

    A+

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour Latomate, bonjour René,

    Je proposerais de passer d’abord par une zone de texte, qui servirait d’antichambre à la sélection.
    Quand l’antichambre est null, la zone de liste propose tous les choix, quand elle est mise à jour, les choix sont restreints à ceux qui contiennent la chaîne de caractères.

    Propriétés de la zone de liste

    Code associé au formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Compare Database
    Option Explicit
     
    Private Sub LaZoneDeListe_AfterUpdate()
      Me.txtAntichambre = Null
    End Sub
     
    Private Sub txtAntichambre_AfterUpdate()
      Me.LaZoneDeListe.RowSource = Me.LaZoneDeListe.RowSource
      Me.LaZoneDeListe.SetFocus
      Me.LaZoneDeListe.Dropdown
    End Sub
    Fichiers attachés Fichiers attachés

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour à vous.

    Claude, pourquoi le Nz(..;[Denomination]) dans ton like ?
    Personnellement je me contente du null qui concaténé te donne une chaîne vide qui te donne la liste de toute les valeurs.

    A+

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour René,

    Tu as raison, on peut simplifier !

    Je modifie la proposition...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Salut à vous

    Merci Claude et René pour ces petites réponses !
    Je mets ca en oeuvre cette après midi et vous fais un retour
    Merci encore.
    Tom

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Alors pour un petit retour !

    Pour la solution de Claude, elle fonctionne très bien sans soucis, Merci !

    Par contre je n'ai pas réussis avec la proposition de Marot que je préférais pour éviter de trop alourdir l'interface avec la solution de Claude.

    Pour donner un peu plus de détails :

    Cette fameuse liste déroulante de rue est filtrée en amont par le choix de la ville.

    Mon code de base est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT VOIES_2.ID, VOIES_2.LIBELLE, VOIES_2.VILLES
    FROM VOIES_2
    WHERE (((VOIES_2.VILLES)=[Formulaires]![SAISIE DOSSIER]![VILLES]))
    ORDER BY VOIES_2.LIBELLE;
    J'ai essayé d'y introduire ton code mais ça ne veut po ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT VOIES_2.ID, VOIES_2.LIBELLE, VOIES_2.VILLES
    FROM VOIES_2
    WHERE (((VOIES_2.LIBELLE) Like "*" & [Formulaires]![SAISIE DOSSIER]![Libellevoie] & "*") AND ((VOIES_2.VILLES)=[Formulaires]![SAISIE DOSSIER]![VILLES]));
    Avec la propriété autocomplete (Auto étendu) à Non et Oui
    et aussi "Limiter à la liste" et "non limité"
    et mon code événementiel "sur changement" et essai aussi avec "si modification"

    Pour préciser ;
    VOIES_2 = table
    LIBELLE = champ de la table ou se trouve les valeurs
    SAISIE DOSSIER = formulaire
    Libellevoie = liste déroulante du formulaire

    Bon merci encore les grands fous
    LaTomate

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    les grands fous
    ... tu dis cela sans rougir ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    j'aurais pu dire les Glands Fous

  10. #10
    Candidat au Club
    Femme Profil pro
    Employée en communication
    Inscrit en
    Juin 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Employée en communication
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2023
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Cette solution est vraiment super bien faite, en plus avec le fichier en annexe et les capture d'écran, c'est bien pratique.

    Merci beaucoup d'avoir partagé cette astuce ici.


    Citation Envoyé par ClaudeLELOUP Voir le message
    Bonjour Latomate, bonjour René,

    Je proposerais de passer d’abord par une zone de texte, qui servirait d’antichambre à la sélection.
    Quand l’antichambre est null, la zone de liste propose tous les choix, quand elle est mise à jour, les choix sont restreints à ceux qui contiennent la chaîne de caractères.

    Propriétés de la zone de liste

    Code associé au formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Compare Database
    Option Explicit
     
    Private Sub LaZoneDeListe_AfterUpdate()
      Me.txtAntichambre = Null
    End Sub
     
    Private Sub txtAntichambre_AfterUpdate()
      Me.LaZoneDeListe.RowSource = Me.LaZoneDeListe.RowSource
      Me.LaZoneDeListe.SetFocus
      Me.LaZoneDeListe.Dropdown
    End Sub

Discussions similaires

  1. enregistrer la valeur saisie sur une liste déroulante dynamique sql
    Par jfab66 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/02/2017, 22h22
  2. Réponses: 3
    Dernier message: 03/01/2017, 14h20
  3. Réponses: 4
    Dernier message: 23/04/2006, 21h27
  4. Liste déroulante dynamique ?
    Par Regis.C dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 12h09
  5. [FORMULAIRE] Liste déroulante dynamique
    Par bchristo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/01/2005, 10h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo