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 :

faire réference à une combo dans la requete sql


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut faire réference à une combo dans la requete sql
    bonjour,
    je voudrais pouvoir utiliser dans une requete, la valeur que l'utilisateur va séléctionner dans la combo (comboStartBloc) pour pouvoir faire une autre combo en fonction de son choix.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id_panel
    FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc
    WHERE bloc.label = comboStartBloc
    Pouvez vous-me dire comment faire.
    Merci

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    bonjour,
    tu peux regarder du cote de [Forms]![MonForm]!comboStartBloc
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    salut,
    merci pour ton "indice".

    J'ai insérer cela dans ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id_panel
    FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc
    WHERE bloc.label=[Forms]![MonForm]!comboStartBloc;
    Le problème c'est que au moment crucial de choir le bon ID_PANEL dans la 2 eme combo, un boite de dialogue s'ouvre, et je dois rentrer manuellement le "[Forms]![MonForm]!comboStartBloc;"

    Peux-tu m'éclaircir encore un peu?
    MercI

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    il faut que tu indiques le nom du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![Nomduformulaire]!...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    désole, j'avais pas fait attention.
    J'ai adapté avec ce que tu à dis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Forms]![Formulaire1]!comboStartBloc;
    mais ca ne renvoie rien dans l'autre combo.
    Y a t-il d'autres choses à adapter encore?

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    alors oui, si ton label est un champs de type texte, il faut ajouter des apostrophes. je ne pense pas que le .value soit obligatoire, mais on ne sait jamais ^^
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    ok alors

    lorsque je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id_panel
    FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc
    WHERE bloc.label='[Forms]![Formulaire1]!comboStartBloc.value';
    cela ne fonctionne pas.

    Mais si je fais (codage en dur) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id_panel
    FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc
    WHERE bloc.label='B3';
    cela me donne le résultat souhaité.

    Il y a donc un souci dans ce '[Forms]![Formulaire1]!comboStartBloc.value'
    J'ai essayé avec "value" et sans.

    Merci

  8. #8
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Citation Envoyé par mat777 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id_panel
    FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc
    WHERE bloc.label='[Forms]![Formulaire1]!comboStartBloc.value';
    Je te propose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    " SELECT id_panel FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc " & _
    " WHERE bloc.label='"  & [Forms]![Formulaire1]!comboStartBloc.value & "';"
    comme requete. Si l'execution se fait dans un code VBA, je te propose de facon integrale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim mabd as DAO.database
    dim str as string
    dim larequete as DAO.recordset
    set mabd=currentdb
    str=" SELECT id_panel FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc " & _
    " WHERE bloc.label='"  & [Forms]![Formulaire1]!comboStartBloc.value & "';"
    set larequete=mabd.openrecordset(str)
    Bon courage!
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    Salut, j'ai essayé via VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim mabd As DAO.Database
    Dim larequete As DAO.Recordset
    Set mabd = DBEngine.OpenDatabase("D:\DatabaseFO\DataFO.mdb")
     
    Set larequete = mabd.OpenRecordset("SELECT id_panel FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc WHERE bloc.label= '" + comboStartBloc.Value + "'")
    comboStartPanel = larequete.Fields("ID_PANEL").Value
    mais cela renvoie le message : "aucun enregistrement en cours ".
    De nouveau si je mets la valeur du comboStartBloc en dur, cela fonctionne.
    C'est surement un problème de syntaxe mais lequel ?

    Merci

  10. #10
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Bonjour!
    Pour verifier si effectivement la requete fonctionne avec le bon parametre, essaie de faire:
    Msgbox "SELECT id_panel FROM panels INNER JOIN bloc ON bloc.id_bloc=panels.id_bloc WHERE bloc.label= '" + comboStartBloc.Value + "'"

    Pour voir si la valeur de comboStartBloc.Value est celle utilise.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  11. #11
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    En effet il y a un problème, il ne me revoie pas la valeur de l'élément selectionné dans la combo, il me renvoie la clé primaire correspondante.
    Comment faire pour qu'il me renvoie le string qui est séléctionné dans la combo ?

    Ca résoudrait mon problème.

  12. #12
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    bonjour,
    tu dois regarder dans les propriétés de la combo, la colonne associée (boundcolumn).
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    ca va j'ai trouvé enfait il faut utiliser cette propriété :
    par contre savez-vous comment réinitialiser une combo de facon à ce qu'elle ne contienne plus rien.
    j'ai besoin de ca juste avant de renvoyer des nouvelles valeurs dedans.
    J'avais pensé à un combo.clear mais apparement ca n'existe pas.

    Merci

  14. #14
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 286
    Points
    34 286
    Par défaut
    essaie :
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  15. #15
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    Ok cela fonctionne tres bien.
    La majortié de mes problèmes sont résolus.

    Merci à tous.
    Vous m'avez bien aidé.

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/06/2011, 13h39
  2. passer une variable dans ma requete SQL
    Par poulette3000 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/04/2008, 13h50
  3. passer une variable dans ma requete SQL
    Par poulette3000 dans le forum C#
    Réponses: 0
    Dernier message: 16/04/2008, 19h24
  4. [Requete]Faire disparaître une colonne dans une requête
    Par emilie31 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/04/2007, 11h10
  5. Réponses: 1
    Dernier message: 14/02/2007, 17h08

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