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 :

Récupérer les valeurs d'une liste déroulante dans une autre [AC-2007]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 78
    Points : 53
    Points
    53
    Par défaut Récupérer les valeurs d'une liste déroulante dans une autre
    Bonjour à tous,

    Je cherche a récupérer les valeurs d'une liste déroulante (valeurs issues de ma BDD) dans une autre.

    J'ai donc pondu le code suivant:

    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
    Private Sub liste2_GotFocus()
     
    Dim sql As String
    Dim rst As Recordset
     
    If IsNull(liste1.Value) Then
        MsgBox "Sélectionnez une installation avant de choisir un matériel !"
        Exit Sub
    Else
        sql = "select Nom from Table_Materiels where Etape= '" & liste1.Value & "' "
        Set rst = CurrentDb.OpenRecordset(sql)
     
        rst.MoveFirst
     
        Do While Not rst.EOF
        liste2.AddItem (rst.Fields("Nom"))
        rst.MoveNext
        Loop
        rst.close
        Me.Refresh
    End If
     
    End Sub
    Le code fonctionne , mais il ya un couac!
    Si je sélectionne la liste 1 puis la liste2 (qui récupère les valeurs de la liste1), et que je reviens vers la liste1 (suite à une erreur par exemple) mais liste2 s'allonge, s'allonge, s'allonge !!... J'ai beau essayer un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub liste1_Change()
    Me.liste2.Value = Null
    End Sub
    Rien n'y fait...

    Cela doit etre tout bete, mais là je sèche...

    Merci pour votre aide

    A+

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faut faire un Clear (voir aide) de la liste avant le additem.

    Mais d'abord pourquoi passer par un Additem, il suffit de mettre ta deuxième requête comme source de ta deuxième liste.

    Philippe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 78
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Il faut faire un Clear (voir aide) de la liste avant le additem.
    J'ai consulté l'aide mais vois pas. Faut dire que mon niveau n'est pas super élevé

    Citation Envoyé par Philippe JOCHMANS Voir le message
    Mais d'abord pourquoi passer par un Additem, il suffit de mettre ta deuxième requête comme source de ta deuxième liste.
    Je comprends encore moins...

    Merci pour ton aide et ta patience !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Je t'invite à lire cela : http://argyronet.developpez.com/offi...ectitemlistAB/

    Philippe

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 78
    Points : 53
    Points
    53
    Par défaut
    Merci Philippe pour ta réponse.

    Sur tes conseils après lecture de l'article d'Agyronet, j'ai réalisé le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub liste1_AfterUpdate()
     
     
    Dim sql As String
    Dim lngIDCat As String
     
       lngIDCat = Me!liste1
      sql = "SELECT Nom from Ma_Table where Etape =" & lngIDCat & " ORDER BY Nom"
       liste2.RowSource = sql
       liste2.Enabled = True
       liste2.SetFocus = True
       liste2.Dropdown
     
    End Sub
    Toutefois, à l'execution et au focus de liste2 j'ai une boite de dialogue qui m'invite à saisir "Une valeur de paramètre" avec en entete la valeur selectionnée en liste1

    NOTE: liste1 contient les valeurs: Primaire;Secondaire;Tertiaire;Lavage;Filtre Presse

    Aurais-tu une petite idée ?

    Merci beaucoup.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Le problème lorsque vous posez des questions sur le forum, c'est que vous n'êtes pas cohérent.

    Dans le premier cas, dans ta clause Where tu passes une donnée de type texte, et maintenant une donnée de type Numérique.

    En effet, dans ton dernier test tu déclares une variable

    Hors le préfixe lng est utilisé pour les données de type Long, et là tu déclares une String

    Donc si c'est une string, il ne reconnait pas les données dans ta requête SQL, car tu ne l'as pas entourée de quotes (').

    Il serait donc bien d'y aller de manière cohérente.

    Philippe

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 78
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Cohérent ? Oui tu as raison. J'en suis désolé. Lorsque j'ai posté j'avais 14 heures de dev. dans les pattes et comme je débute, j'ai tout mélangé...

    Mon problème est résolu sur tes indications et j'ai ultra simplifié le code.

    Mille mercis en tout cas pour ta patience et ton dévouement.

    Bon WE

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/09/2012, 23h48
  2. Réponses: 4
    Dernier message: 20/02/2012, 16h59
  3. Réponses: 1
    Dernier message: 12/12/2011, 10h07
  4. Réponses: 11
    Dernier message: 26/04/2007, 10h40
  5. Afficher la valeur choisie d'une liste déroulante dans une textbox
    Par bouchette63 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/06/2006, 14h26

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