SQL et VBA Excel

Bonjour,

j'ai un petit problème avec du code SQL sous VBA.
Mon programme plante à l'endroit suivant:
"SELECT Sum(VALEUR_BOURSIERE) AS 'Enc_VR', Sum(VALEUR_ACTUELLE_LIGNE) AS 'Enc_VNC'" & Chr(13) & "" & Chr(10) & "FROM DIRFIREPORT_DEV_01.USER_DFR.INVAMO_DF INVAMO_DF" & Chr(13) & "" & Chr(10) & "WHERE (INVAMO_DF.DATE_VALORISATION={ts '2008-06-30 00:00:00'}) AND ( " & CondPort & " )")

si CondPort ne vaut qu'une seule valeur, ça fonctionne nikel:
CondPort = "INVAMO_DF.CODE_PORTEFEUILLE='9120'"

mais si CondPort prend plusieurs valeurs, cela plante pour "incompatibilité de titre"

CondPort = "INVAMO_DF.CODE_PORTEFEUILLE='9120) OR (INVAMO_DF.CODE_PORTEFEUILLE='9140'"

Au début, mon programme ne fonctionnait pas mais après avoir encadré Condport par ' " & ', cela fonctionne. Peut-être que mon erreur est de ce type?
merci d'avance!
Configuration: Indeterminable Indeterminable

3 réponses

  1. Bonjour,

    C'est peut-être le contenu de la variable CondPort qui n'est pas bon
    CondPort = "INVAMO_DF.CODE_PORTEFEUILLE='9120) OR (INVAMO_DF.CODE_PORTEFEUILLE='9140'" 

    Il faut peut-être supprimer les )
    CondPort = "INVAMO_DF.CODE_PORTEFEUILLE='9120' OR INVAMO_DF.CODE_PORTEFEUILLE='9140'" 

    A plus
    1. Merci de ta réponse

      Le bug ne semble pas venir du "group by" car le code fonctionne bien lorsque
      CondPort = "INVAMO_DF.CODE_PORTEFEUILLE='9120'"

      C'est uniquement lorsque CondPort prend plusieurs valaurs que cela coince.
      1. Bonjour,

        Lorsque tu utilises l'instruction SUM, tu dois rajouter l'instruction GROUP BY, ton code devrait être le suivant
        "SELECT Sum(VALEUR_BOURSIERE) AS 'Enc_VR', Sum(VALEUR_ACTUELLE_LIGNE) AS 'Enc_VNC' , 
        INVAMO_DF.CODE_PORTEFEUILLE" & Chr(13) & "" & Chr(10) & "FROM DIRFIREPORT_DEV_01.USER_DFR.INVAMO_DF INVAMO_DF" & Chr(13) & "" & Chr(10) & "WHERE (INVAMO_DF.DATE_VALORISATION={ts '2008-06-30 00:00:00'}) AND ( " & CondPort & " )")
        GROUP BY INVAMO_DF.CODE_PORTEFEUILLE
        


        A plus