SQL et VBA Excel
francois0710
-
Christounet Messages postés 1266 Statut Membre -
Christounet Messages postés 1266 Statut Membre -
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!
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!
A voir également:
- SQL et VBA Excel
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Si et ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Déplacer colonne excel - Guide
3 réponses
Bonjour,
Lorsque tu utilises l'instruction SUM, tu dois rajouter l'instruction GROUP BY, ton code devrait être le suivant
A plus
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
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.
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.