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 :

Affichage TextBox en fonction de choix ListBox [AC-2013]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Affichage TextBox en fonction de choix ListBox
    Bonsoir à toutes et à tous

    Je sollicite la communauté pour une chose simple que j'arrive à écrire en VBA Excel, mais impossible à réaliser sur Access.

    J'ai une listbow et une texbox.

    J'aimerai qu'en fonction du choix de ma listbox j'ai une valeur qui s'affiche dans cette textbox.

    Exemple, je choisis un nom dans la listbox et j'ai la ville correspondante dans la textbox par exemple.

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonsoir,

    Où se trouve tes données ? Dans une table ?

    Si oui, sur procedure MAJ de la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaTextBox=Dlookup("MaValeur","MaTable","MaCondition si yl y en a une")
    Ou, si ta valeur à retourner dans la TextBox est contenue dans une colonne de ta liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaTextBox=Column(N° de la colonne)
    Bonne nuit.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Merci, mais tes codes ne m'aident pas.

    Effectivement la valeur à retourner est dans une table donc je dois faire un DLookup en fonction de la valeur de ma listbox mais je ne sais pas comment l'écrire et quelle événement utiliser

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Re,

    Ta liste déroulante t'affiche-t-elle les valeurs souhaitées quand tu clic dessus ?
    Si oui donc tu as rempli la source.

    Ensuite tu vas dans les propriétés de cette liste et tu déclare une procédure événementielle sur MAJ.
    VBA s'ouvre et là tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaTextBox=Dlookup("TonChampRecherchéDansTaTable","LeNomDeTaTable","TaCondition si yl y en a une")
    Cdlt

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Désolé mais je n'y arrive toujours pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub lstUsername_AfterUpdate()
     
    Dim Test As String
     
    Test = lstUsername.DataTextField
     
    Me.txtUseraccess.Value = DLookup("[UserAccess]", "tblUser", "[UserName] = Test")
     
    End Sub
    Je n'arrive aps à récupérer la valeur texte de l'élément séletionné dans ma listbox.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    et avec ceci ?

    Cdlt.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Merci, ton exemple marche parfaitement bien et j'arrive à l'appliquer à mon cas, sauf que j'aimerai récupérer la valeur directement dans ma listbo sans passer par une textbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub lstUsername_AfterUpdate()
     
    Dim Test As String
     
    Test = lstUsername.Column(1, lstUsername.ListIndex)
     
    Me.txtUseraccess.Value = DLookup("[UserAccess]", "tblUser", "[UserName] = Test")
     
    End Sub
    Test me renvoie bien la valeur de la Listbox, mais la ligne du dessous memet une erreur par rapport à Test donc sans doute une erreur de syntaxe

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Ton code ne reconnait pas ta variable en tant que tel.
    Il faut la mettre entre cote.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtUseraccess.Value = DLookup("[UserAccess]", "tblUser", "[UserName] = '" & Test & "'")
    Cdlt.

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Nickel, ça marche enfin.

    Je trouve le VBA Access beaucoup plus complique à écrire que celui d'Excel.

    Dernière question avant de mettre en Réolu.

    Plutôt qu'utiliser une variable, comment intégrer directement le code dans la ligne ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtUseraccess.Value = DLookup("[UserAccess]", "tblUser", "[UserName] = '" & Test & "'")
    genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtUseraccess.Value = DLookup("[UserAccess]", "tblUser", "[UserName] = lstUsername.Column(1, lstUsername.ListIndex)'")
    Merci

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Points : 193
    Points
    193
    Par défaut
    Bonsoir,

    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txtUseraccess.Value = DLookup("UserAccess", "tblUser", "UserName = '" & LstUserName.Column(1, LstUserName.ListIndex) & "'")
    Cdlt

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Tout simplement et ça fonctionne.

    Encore merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage dans des TextBox en fonction d'une ListBox
    Par samawati dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 13/01/2014, 17h59
  2. Réponses: 4
    Dernier message: 23/06/2010, 10h17
  3. Affichage Textbox en fonction d'un nombre choisi dans un combo
    Par stef33150 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 23/02/2010, 21h16
  4. Réponses: 11
    Dernier message: 08/01/2010, 22h10

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