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 :

[VBA] liste déroulante avec requête


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut [VBA] liste déroulante avec requête
    Bonjour,

    dans un formulaire une liste déroulante (liste 2) doit proposer des choix en fonction d'un choix fait dans une liste déroulante en amont (liste 1, dans laquelle j'affiche un Project é l'IDProject correspondant)

    la liste 1 affiche le contenu de la table 1 et la liste 2 doit afficher les enregistrements de la table 2 dont le champ IDProject correspond à celui selectionné plus haut.

    Sans WHERE j'ai tout le contenu de la table 2 mais si je mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = SQL & " WHERE [table2].[IDProject] = " & nomDeLaListe1 & ";"
    ça n'affiche rien

    Merci
    Matt

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

    Heu, c'est quoi cela



    Starec

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    c'est le nom de la combobox dans laquelle il y a la liste déroulante où je sélectionne un project
    Matt

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

    C'est que ce nom me paraissait bizarre.

    A la place de mets As-tu testé la requête pour voir si elle retourne quelque chose ?
    La valeur de ton champ IdProject est-il du numérique ou du texte ?
    Ta première liste contient-elle plusieurs colonnes ?

    Starec

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    oui pardon javé mi "Me.nomDeLaListe1" mais pas ".value" je l'ai rajouté mais ça ne marche toujours pas
    Matt

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Starec
    As-tu testé la requête pour voir si elle retourne quelque chose ?
    La valeur de ton champ IdProject est-il du numérique ou du texte ?
    Ta première liste contient-elle plusieurs colonnes ?
    Et cela ?

    Starec

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    - Non je n'ai pas testé la requête mais je ne sais pas comment la tester comme ça. (mais c'est tellement bidon : le contenu d'une table avec une condition sur un des champ ... c'est un truc tout con c'est sûr !)

    - IDproject c'est du numérique (mais en fait dans la liste 1 à l'affichage j'ai mi le nom du projet mais il y a 2 colonnes : projectName et IDProject et je ne sais pas ce qui est renvoyé ? ça dépend de l'ordre des colonne ? ou de la "source contrôle" ?)

    - nombre de colonne de la liste1 : 2

    je m'été empressé de tester ton mini bout de code sans lire la suite lol dsl (c'est l'impétuosité de la jeunesse )
    Matt

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

    Ecrit cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.nomdelaliste.Column(1)
    Il va prendre la valeur de la deuxième colonne de ta liste (les colonnes commencent à 0)

    Starec

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

    Mets toute la ligne de ta requête (tout le code SQL) et as-tu un message d'erreur ?

    Starec

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 222
    Points
    222
    Par défaut
    supprime le point virgule ; à la fin. Il y est car tu as généré ta requète avec le générateur puis transformé en SQL. Mais en SQL VBA, il faut supprimer ce ;

    Salutations

    Bruno
    Salutations

    Bruno


  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    [Bruno28] Pas du tout, il y est pck je l'ai tapé mais ça fonctionne quand meme avec (sans le where il y a des résultats, avec il n'y a rien)

    [Starec] voilà "ma" ligne de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub FluidChoice()
    Dim SQL As String
    SQL = "SELECT DISTINCT [Fluids].[FluidName], [Fluids].[IDFluid], [Projects].[ProjectName],[Fluids].[IDProject] FROM Fluids INNER JOIN Projects ON [Fluids].[IDProject] = [Projects].[IDProject]"
    SQL = SQL & " WHERE [Fluids]![IDProject] = " & Me.cmb_proj.Column(0)
    SQL = SQL & " ORDER BY FluidName;"
    Me.cmb_fluid.RowSource = SQL
    End Sub
    Matt

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

    Tu dis qu'il n'y a rien quand tu rajoutes ta clause where, il faudrait faire un petit test.

    Sur l'évènement click de ta liste (la deuxième) met ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Me.cmb_proj.Column(0)
    et dis s'il y'a ce que tu attends.

    Starec

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    Il n'y a meme pas de fenetre qui s'ouvre avec une erreur...

    ah si mais il a fallu que je vire la condition vu qu'il faut sélectionner d'abord pour avoir le message qui m'a retourné ce que j'attendais. Donc il retourne ce qu'il faut c'est bon. C'est le code ou l'affichage qui est foireux alors.
    Mais où ?
    Matt

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

    Essaye de mettre ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim SQL As String
    SQL = "SELECT DISTINCT [Fluids].[FluidName], [Fluids].[IDFluid], [Projects].[ProjectName],[Fluids].[IDProject] FROM Fluids INNER JOIN Projects ON [Fluids].[IDProject] = [Projects].[IDProject]"
    SQL = SQL & " WHERE [Fluids]![IDProject] = " & Me.cmb_proj.Column(0)
    SQL = SQL & " ORDER BY FluidName;"
    Me.cmb_fluid.RowSource = SQL
    sur le GotFocus de cmb_fluid.

    Starec

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    C'était ça nickel merci beaucoup
    Matt

  16. #16
    Invité
    Invité(e)
    Par défaut
    En fait, cela aurait marché (je pense) avec un
    aprés l'affectation de la chaine SQL

    Starec

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    j'ai essayé avec cmb_fluid.requery mais sans succès jretourne sur la méthode utilisant le gotfocus.

    Encore merci

    Je ne comprends pas ça ne marche plus , je suis revenu au code sur le gotfocus et plus rien ds la liste :'(

    ça remarche à moitié il y a une erreur de type de valeur maintenant :s (c bizarre l'inforamtique )
    Matt

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 187
    Points : 56
    Points
    56
    Par défaut
    j'ai changé le nombre de colonnes liées de ma liste déroulante et il n'ya plus d'erreurs , j'vois pas pourquoi ça engendrerait une erreur mais bon...
    Matt

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

Discussions similaires

  1. Liste déroulante avec objet différent en VBA
    Par béber_novice dans le forum Général VBA
    Réponses: 1
    Dernier message: 16/04/2012, 20h07
  2. Réponses: 10
    Dernier message: 29/04/2011, 12h02
  3. [AC-2003] Remplir une liste déroulante avec du SQL et du VBA
    Par srede dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2010, 10h47
  4. Réponses: 2
    Dernier message: 30/07/2009, 18h25
  5. requête sur liste déroulante avec pb date
    Par jeinny dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 05/06/2008, 14h12

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