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

VB 6 et antérieur Discussion :

Insérer le contenu d'une cbbox dans une requête SQL ?


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Services rédactionnels
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Services rédactionnels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Insérer le contenu d'une cbbox dans une requête SQL ?
    Bonjour à tous,
    mon projet de stage (que j'avais déjà exposé sur le forum il y a quelques temps)avance petit à petit.
    Après quelques erreurs auto-corrigés, le vrai problème pointe le bout de son nez pour le débutant que je suis.
    Je souhaite, comme le titre modifié le suggère déjà bien, récupérer des éléments d'une combobox pour les intégrer à une requête SQL


    Dans ma requête ci-dessous
    strSQLEtat = "SELECT budgetprimitif - SUM(montantcommande)
    FROM bondecommande JOIN allocation USING (codearticle, idaction)
    WHERE codearticle=60225 AND idaction = 1
    GROUP BY budgetprimitif"
    le codearticle et l'idaction sont en fait à récupérer sur la feuille, à partir des libellés de ceux-ci qui se trouvent dans des combobox ! J'ai bien tenté ceci mais "ça y aime pas bien" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      strSQLEtat = "SELECT budgetprimitif - SUM(montantcommande)" & _
                    "FROM bondecommande JOIN allocation USING (codearticle,idaction)" & _
                    "WHERE idaction IN (SELECT idaction FROM action WHERE libelleaction LIKE frmFonctionnement.cboActions.Text )" &
                                   "AND codearticle IN (SELECT codearticle FROM fonctionnement WHERE libellearticle LIKE 'Livres, disques, cassettes (bibliothèques, médiathèques)')" & _
                    "GROUP BY budgetprimitif"
    avec juste le libellé à récupérer pour l'action dans ce cas pour tester.

    Qui aurait une piste à me donner pour l'écriture de cette requête en récupérant les textes d'une cbbox ? Ou peut-être une autre méthode en enregistrant dans des variables ces mêmes textes ? Ça me paraît un peu tordu mais pourquoi pas ?

    Merci,
    LePoussain


    Merci à vous !



    Edit : Je précise que la connexion à la BD est a priori bonne puisque les cbox sont correctement remplis et que la requête renvoie bien une valeur à partir du SGBDR

  2. #2
    Membre à l'essai
    Homme Profil pro
    Services rédactionnels
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Services rédactionnels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    J'ai essayé ceci qui va un peu mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "WHERE idaction IN (SELECT idaction FROM action WHERE libelleaction LIKE " + cboActions.Text + " )" & _
    puisque je me retrouve avec une
    Erreur de syntaxe sur ou près de "general" ; Erreur lors de l'exécution de la requête
    Pour moi, cela veut dire qu'il récupère bien le contenu de la cbb puisque ce contenu se termine par "general" mais qu'il n'arrive pas exécuter la suite de la requête. C'est bien ça ?
    Du coup, je ne trouve pas le moyen de concaténer le reste de la requête...

    Une idée ?

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 175
    Points
    17 175
    Par défaut
    Salut
    Enreprenant la construction de ta requête de ton premier post
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      strSQLEtat = "SELECT budgetprimitif - SUM(montantcommande) " & _
                    "FROM bondecommande JOIN allocation USING (codearticle,idaction)" & _
                    "WHERE idaction IN (SELECT idaction FROM action WHERE libelleaction LIKE '" & frmFonctionnement.cboActions.Text & "') " & _
                                   "AND codearticle IN (SELECT codearticle FROM fonctionnement WHERE libellearticle LIKE 'Livres, disques, cassettes (bibliothèques, médiathèques)' )" & _
                    "GROUP BY budgetprimitif"
    Il me semble, , car ton deuxième Like me semble suspect, il faudrait que ton champs libellearticle contienne la totalité de Livres, disques, cassettes (bibliothèques, médiathèques).... mais je peu me tromper.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre à l'essai
    Homme Profil pro
    Services rédactionnels
    Inscrit en
    Juin 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Services rédactionnels

    Informations forums :
    Inscription : Juin 2014
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Merci
    Merci beaucoup, ça fonctionne enfin ! (Sauf la mise de la requête sur plusieurs lignes pour laquelle je n'ai pas encore identifié le problème, mais ce n'est qu'un détail !)

    Concernant le deuxième LIKE, c'était bien ça puisqu'il s'agissait du libellé d'un article comptable sur lequel on veut qu'une commande soit imputée. Mais, de toute façon, ce LIKE a disparu au profit d'une autre sélection d'un cbbox.
    Merci d'avoir pris du temps pour se pencher sur son problème !

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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