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

Requêtes et SQL. Discussion :

récupérer une valeur a partir d'une liste déroulante


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut récupérer une valeur a partir d'une liste déroulante
    Bonjour à tous,


    Débutant en access, j'aimerais savoir comment récupérer une valeur dans une liste déroulante pour la réutiliser dans la clause where de ma requete.

    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select *  maTable where fournisseur= maliste.monChamp
    merci à tous

    Bilou69

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 653
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 653
    Points : 34 363
    Points
    34 363
    Par défaut
    salut,
    tu es sur la bonne piste,
    il faut spécifier le formulaire dans lequel tu recupères l'info
    Un exemple à ce sujet est dispo dans la

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    je suis tjs sur mon probleme j'ai essayé d'executer la requete en vb pour pouvoir récupérer une valeur a partir de ma liste déroulant cbFournisseur voilà le code :

    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
     
    Private Sub btnValider_Click()
     
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim sql As String
     
    sql = "select * from produit, acheter, fournisseur"
    sql = "where produit.id_produit=acheter.id_produit"
    sql = "and fournisseur.id_fournisseur=acheter.id_fournisseur"
    sql = "and nom_fournisseur='" & cbFournisseur.Value & "'"
     
    Set db = CurrentDb
    Set rs = db.OpenRecordset(sql, dbOpenTable)
     
     
    End Sub
    j'ai l'erreur suivante qd je clique sur mon bouton :

    Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet 'and nom_fournisseur="". Assurez-vous que l'objet existe et que vous avez correctement saisi le chemin d'accès
    j'en appelle aux grands gouroux d'access et vba parce que je passe a coté d'un truc ...

    bilou69

  4. #4
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Bonojur essaye en ajoutant des espaces et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sSQL = "select * from produit, acheter, fournisseur "
    sSQL = sSQL & "where produit.id_produit=acheter.id_produit "
    sSQL = sSQL & "and fournisseur.id_fournisseur=acheter.id_fournisseur "
    sSQL = sSQL & "and nom_fournisseur='" & cbFournisseur.Value & "'"
    et si ta condition "cbFournisseur.Value" ne marche pas (je suppose que cbFournisseur est le nom de ta liste) tu peux la remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.cbFournisseur.Column(1)
    parceque normalement dans la première colonne de la liste déroulante on a la clé caché et non les noms des fournisseurs.
    j'espère que ça répond à ta question
    bon courage

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Merci pour ta réponse

    Je n'avais pas la requete en entier merci grace a toi j'ai pû concaténer correctement la chaine de caractère j'ai donc la requete entière cependant j'ai toujours le même message d'erreur que j'utilise :
    cbFournisseur.value
    ou
    Me.cbFournisseur.Column(1)
    avec la deuxième option qd j'execute
    nom_fournisseur=""
    Je n'arrive pas a récupérer la valeur de ma combo.

    bref ... je n'arrive tjs pas à visualiser ma requete select.

    quelqu'un pourrait me donner les grandes lignes pour exécuter une requete select parce que je sèche complètement j'ai débugger et mon RecordSet=nothing

    pourtant ma requete renvoie bien un jeu d'enregistrement qd je l'execute dans l'éditeur sql sous Access

    conclusion je sèche vraiment...

    merci à tous et joyeux noel

    Bilou69

  6. #6
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Bonjour
    Remplace ton recordset par celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set rst = db.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Salut,

    merci pour ta réponse

    j'ai remplacé mon recordset par cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Set rst = db.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
    et là super ! plus d'erreur mais ma requete ne s'excute pas que faire?

    merci pour ta patience

    Bilou69

  8. #8
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Bonjour,
    comment tu sais qu'elle ne s'exécute pas? c'est une requete "Select" et donc son résultat tu l'as maintenant dans le recordset et c'est à toi de l'exploiter selon tes besoins. j'espère que tu me comprnds!

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    En fait je me suis mal exprimé elle s'execute parce que j'ai fait le test suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    msg=rs(0) 
    msgBox(msg)
    et j'ai bien un résultat donc effectivement la requete s'execute mais comment visualiser toutes les lignes de mon RecordSet.

    en fait la vraie question c'est comment visualiser le résultat de la requete select comme sous l'éditeur sql en fait.

    merci

    Bilou69

  10. #10
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    je sais pas comment tu peux faire ceci; pour moi j'utilise ce type de recordeset pour faire des traitements.
    Mais pourquoi ne crée pas tu la requete et l'enregistrer puis la lié à ton formulaire ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Re

    pour executer la requete j'ai tenté et la j'ai une erreur d'excution a mon avis c'est pas la bonne solution.

    j'ai aussi tenté mais apparemment ça ne marche pas avec les requetes de selection...

    conclusion je vois pas pourtant je suis sur qu'il y a un moyen d'executer (ouvrir) ma requete non?

    merci encore

    Bilou69

  12. #12
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    je sais pas comment tu peux faire ceci; pour moi j'utilise ce type de recordeset pour faire des traitements.
    Mais pourquoi ne crées tu pas la requete et l'enregistrer; puis tu cée un formuliare de type feuille de données lié à la requete.
    c'est pas ce que tu veux?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Merci de ton aide

    comment lier une requete à un formulaire?
    c'est peut etre la bonne solution mais je dois utiliser ma liste déroulante pour choisir mon fournisseur avant d'executer la requete.

    donc en liant la requete au formulaire pourrais-je utiliser ma liste déroulante?

    merci

    Bilou69

  14. #14
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    l'idée que je peux te donner c'est de créer un formulaire vierge, tu crée ta liste de fournisseurs puis tu crée un sous formulaire basé sur la requête.Dis moi, la feuille de données contient un champs ID-Fournisseurs?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    oui la table fournisseur contient bien un id fournisseur. au niveau de ma liste déroulante j'affiche les uniquement les noms des fournisseurs.

    et l'idée c'est que lorsque je sélectionne un fournisseur je clique sur valider et j'ai la liste de ses produits qui apparaît

    voilà tu sais tout

    un grand merci

    Bilou69

  16. #16
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Alors pour la requete à créer:
    tu peux la créer facilement en mode création ce que tu ajoute c'est le champ ID-fournisseur que tu n'affiche pas (décoche "afficher") et sur son "Critère" t met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![Nom_du_formulaire]![Nom_liste_fournisseur]
    et dans l'evenement "Après MAJ" de la liste tu met:
    tiens moi au courant du résutat
    Bon courage

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Merci pour ta réponse c cool

    voici ce que j'ai fait précisément :

    en mode création j'ai fait ma requete voici ce que ça donne en sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT fournisseur.nom_fournisseur, ACHETER.prix_achat, PRODUIT.libelle_produit
    FROM PRODUIT INNER JOIN (fournisseur INNER JOIN ACHETER ON fournisseur.id_fournisseur = ACHETER.id_fournisseur) ON PRODUIT.id_produit = ACHETER.id_fournisseur
    WHERE (((fournisseur.id_fournisseur)=[Forms]![Formulaire]![cbFournisseur]));
    j'ai mis cette requete sur l'évènement clic du bouton.

    ensuite au niveau de la liste dans contenu j'ai mis la requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom_fournisseur from fournisseur
    ensuite dans l'évènement après MAJ de la liste j'ai mis :

    mais qd je clique sur la liste déroulante il me demande de saisir un paramètre je ne comprends pas.

    merci de ton aide

    bilou69

  18. #18
    Membre habitué Avatar de miamou
    Inscrit en
    Novembre 2009
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 161
    Points : 178
    Points
    178
    Par défaut
    Bonsoir,
    j'ai mis cette requete sur l'évènement clic du bouton.
    de quel bouton tu parles?
    et Pour la liste des fournisseurs tu la crée par l'assistant;
    Puis tu crée un sous formulaire lié à la requete

  19. #19
    Membre actif
    Homme Profil pro
    Manager de Projet SAP
    Inscrit en
    Mars 2009
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Pologne

    Informations professionnelles :
    Activité : Manager de Projet SAP
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2009
    Messages : 210
    Points : 238
    Points
    238
    Par défaut Bonjour
    Selon moi on peut faire la chose de la facon suivante :

    1 formulaire contenant :

    1) un 1er champ contenant la liste des fournisseurs contenus dans une table. Dans les parametres du champ, deux champs a afficher dont le 1er (ID) egal a 0 cm, le deuxieme (nom fournisseur) egal a 2,5 cm.

    2) un 2eme champ relie a la table contenant les valeurs par fournisseur et ne faisant apparaitre que les valeurs du fournisseur dont l'ID present dans le champ precedent. Dans les proprietees du champ, je relie a une requete basee sur la table contenant les valeurs par fournisseur et, pour le champ ID, je donne, comme critere, le 1er champ du formulaire.

    En piece jointe un exemple.

    Par contre, j'ai cree le fichier sous Access 2010 beta et essaye d'enregistrer le fichier en format 2007, format qu'il m'a propose d'office. Par contre, il ne m'a pas propose de versions precedentes d'Access pour l'enregistrement.

    J'espere que tu pourras ouvrir le fichier Access.

    Cdlt.
    Fichiers attachés Fichiers attachés

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Bonjour à vous deux ! (miamou et jj4822)

    jj4822 merci pour tes explications; Malheureusement je n'ai pas pu l'ouvrir mais je vais essayer de mettre en oeuvre ton exemple.

    encore merci à vous deux !

    je vous tiens au courant sur la suite des évènements

    a bientot

    Bilou69

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. recuperer une valeur a partir d'une fonction
    Par sisi1234 dans le forum Langage
    Réponses: 3
    Dernier message: 08/07/2015, 19h07
  2. Réponses: 1
    Dernier message: 01/05/2014, 17h25
  3. Prendre une valeur particulière à partir d'une image scannée
    Par hamzawhy dans le forum Général Java
    Réponses: 2
    Dernier message: 28/07/2013, 15h41
  4. Réponses: 0
    Dernier message: 13/04/2012, 23h06
  5. trouver une table a partir d une valeur
    Par chaky furtz dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/01/2008, 19h57

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