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

VBA Access Discussion :

Modifier l'auto complétion dans une liste déroulante.


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Modifier l'auto complétion dans une liste déroulante.
    Bonjour,

    Après avoir effectué de nombreuses recherches depuis un certains temps, mes efforts sont restés sans résultat.

    Mon problème : j'ai une table contenant la liste des Fournisseurs et elle alimente une liste déroulante.
    Pour l'instant, je suis obligé de taper c, puis h, puis e etc pour avoir "Chez Jules".

    Je voudrais pouvoir taper "Jules" directement, par exemple.

    Je serais très reconnaissant auprès de quiconque qui pourrait m'aider à orienter mes recherches.
    Merci d'avance.

    Swed_Chief

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 060
    Points : 24 664
    Points
    24 664
    Par défaut
    Bonjour,

    Malheureusement ce n'est pas possible nativement avec une liste déroulante. L'autocomplétion fonctionne de cette manière.

    Il faut imaginer autre chose pour contourner le problème.

    Cordialement,

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 060
    Points : 24 664
    Points
    24 664
    Par défaut
    Tu peux utiliser l'évènement KeyUp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Option Compare Database
    Option Explicit
    Dim strList As String   'stocke les keycode
     
    Private Sub Modifiable1_GotFocus()
         strList = ""  'perte du focus on vide la liste de touche
    End Sub
     
    Private Sub Modifiable1_KeyUp(KeyCode As Integer, Shift As Integer)
    Dim i As Long
     
    If KeyCode = 27 Then strList = ""  'echap vide le contenu
    If Not (KeyCode > 64 And KeyCode < 123) Then Exit Sub  'ce n'est pas un caractère A-Z a-z à affiner
     
    strList = strList & Chr(KeyCode)  'ajoute la touche pressée
     
    For i = 0 To Me.Modifiable1.ListCount - 1  'parcours les items
        If Me.Modifiable1.Column(1, i) Like "*" & strList & "*" Then  'l'item correspond
           Me.Modifiable1.ListIndex = i  'on s'y positionne
           Exit For  'et on sort
        End If
    Next
     
    End Sub
     
    Private Sub Modifiable1_LostFocus()
         strList = ""   'perte du focus on vide les keycode
    End Sub
    Cordialement,

  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 Swed_Chief.

    Loufab.

    Une autre solution consiste à ajouter les mots à la liste qui alimente ta liste déroulante.

    Je l'ai fait pour une liste de nom où je voulais pouvoir trouver la personnes par son nom de famille ou par son prénom.
    J'avais un truc du genre

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select [tblPersonne].[Clef], [tblPersonne].[Nom] as Col1, [tblPersonne].[Prenom] as Col2 from [tblPersonne]
    union select [tblPersonne].[Clef], [tblPersonne].[Prenom] as Col1, [tblPersonne].[Nom] as Col2 from [tblPersonne]
    order by [col1],[Col2]

    Avec des morceaux de nom c'est un peu moins évident mais ou pourrait imaginer une table

    tblIndexMotClient
    ClefIndexMot
    Mot
    ClefClient

    avec un index unique composé sur Mot et ClefClient.

    Cette table serai alimentée au moment où tu crée ou modifie ta fiche client.

    C'est moins élégant que la solution de Loufab.

    A+

Discussions similaires

  1. Réponses: 12
    Dernier message: 19/06/2014, 11h28
  2. [WD-2007] Modifier le format du texte dans une liste déroulante sous Word 2007
    Par Fitch-Warrior dans le forum Word
    Réponses: 0
    Dernier message: 19/05/2014, 17h56
  3. [MySQL] Modifier champs (choisi dans une liste déroulante)
    Par Destampes_SA dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 23/06/2009, 14h32
  4. Réponses: 3
    Dernier message: 10/04/2008, 13h50
  5. Réponses: 1
    Dernier message: 27/10/2005, 21h48

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