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 :

SQL dans VBA access 2002


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 33
    Points
    33
    Par défaut SQL dans VBA access 2002

    Je tente de créer une requête d'analyse croisée à l'aide d'un clic sur un bouton sous vba dont voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim sql As String
     
    sql = "TRANSFORM Sum(qconsoFTparBismestreetannée.Montant) AS SommeDeMontant"
    sql = " SELECT qconsoFTparBismestreetannée.Bimestre"
    sql = " FROM qconsoFTparBismestreetannée"
    sql = " WHERE (((qconsoFTparBismestreetannée.année) = " & Me.ztAnnée & " Or (qconsoFTparBismestreetannée.année) = " & (Me.ztAnnée - 1) & "))"
    sql = " GROUP BY qconsoFTparBismestreetannée.Bimestre"
    sql = " PIVOT qconsoFTparBismestreetannée.année;"
     
    CurrentDb.QueryDefs("qconsoFTparBismestreetannée_AC").sql = sql

    J'ai en retour le message suivant :
    ERREUR 3129
    Instruction SQL non valide ; 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' attendus.


    La requête qconsoFTparbimestreetannée_AC existe déja (en SQL) et fonctionne bien, j'ai recopié son code sql dans VB

    Pouvez vous m'aider
    merci d'avance

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    Je ne suis pas un grand expert en SQL, mais je ne comprends pas pourquoi tu affecte un code SQL en plusieurs parties MAIS sans les joindre
    Sinon ici, la variable sql ne prendra que la dernière valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = " PIVOT qconsoFTparBismestreetannée.année;"

  3. #3
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Re,
    je pense qu'une chose comme ceci serait beaucoup mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim sql As String
    
    sql = "TRANSFORM Sum(qconsoFTparBismestreetannée.Montant) AS SommeDeMontant"
    sql = sql & " SELECT qconsoFTparBismestreetannée.Bimestre"
    sql = sql &" FROM qconsoFTparBismestreetannée"
    sql = sql &" WHERE (((qconsoFTparBismestreetannée.année) = " & Me.ztAnnée & " Or (qconsoFTparBismestreetannée.année) = " & (Me.ztAnnée - 1) & "))"
    sql = sql &" GROUP BY qconsoFTparBismestreetannée.Bimestre"
    sql = sql &" PIVOT qconsoFTparBismestreetannée.année;"
    Ceci de façon à ce que chaque variable 'sql' soit concaténer avec la suivante
    En espérant ne pas trop me tromper
    Bonne continuation

    [EDIT]
    De plus je pense que ceci serait mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.CreateQueryDef "NomDeLaRequête", sql

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 33
    Points
    33
    Par défaut
    merci pour ta réponse,
    Je ne suis pas non plus experte en SQL, je me suis contentée de copier le code sql de la requête dans vba. par contre je ne comprend pas ce que tu veux dire par
    "la variable sql ne prendra que la dernière valeur "

    Merci d'avance

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 33
    Points
    33
    Par défaut
    Merci à nouveau


  6. #6
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Je vois que nos message se sont croisés
    De plus, je pense qu'une fois que tu as créé ta requête à l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.CreateQueryDef.......
    Il faut maintenant que tu l'exécute par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenQuery 'NomDeLaRequête"
    Voila, en espérant ne pas trop dire de bêtisse
    Bonne continuation

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

Discussions similaires

  1. SQL dans VBA Access
    Par alainb dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/12/2007, 16h52
  2. SQL dans vba en access
    Par quatar dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/05/2007, 20h09
  3. [VBA - ACCESS 2002] Problème RecordSet/Requête SQL
    Par SamLeChiseuji dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 16/06/2006, 10h01
  4. Utiliser du code SQL dans VBA
    Par a2line dans le forum Requêtes et SQL.
    Réponses: 25
    Dernier message: 30/05/2006, 14h53
  5. [VBA-A]SQL Between VBA Access Need Backup :)
    Par rider57 dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/05/2006, 11h03

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