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

VBA Access Discussion :

Requete en sql fonctionne mais pas en vba [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut Requete en sql fonctionne mais pas en vba
    Bonjour à tous,

    Je suis toujours sur mon formulaire de recherche multi critères. Selon les cases cochées, la partie "where" s'agrandit. Mon problème vient d'un compte avec having. Tout fonctionne bien sans le having.

    En sql, ma requête fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT IdInterne
    FROM MyTable
    WHERE year(Mydate)=2011  and ( month(Mydate)=1 Or month(Mydate)=4 )
    GROUP BY IdInterne
    HAVING sum(iif(E1="Oui",1,0)+ iif(E2="Oui",1,0)+ iif(E3="Oui",1,0)+ iif(E4="Oui",1,0)+ iif(E5="Oui",1,0)+iif(E6="Oui",1,0)) > 1;
    En vba, ça ne marche plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Sub RefreshQuery()
     Dim SQL As String
     Dim SQLNb As String
     
     SQL = "SELECT IdInterne FROM MyTable Where year(Mydate)=2011 "
     
     /* ... */
     
     SQLNb = SQL _
    & " group by IdInterne _
    HAVING sum(iif(E1=""Oui"",1,0)+ iif(E2=""Oui"",1,0)+ iif(E3=""Oui"",1,0) _
    + iif(E4=""Oui"",1,0)+ iif(E5=""Oui"",1,0)+ iif(E6=""Oui"",1,0)) > 1;"

    Le message d'erreur: erreur de syntaxe (mes 4 dernières lignes sont mises en rouge).

    Sauriez-vous d'où provient l'erreur ?
    Merci de votre aide.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 136
    Points : 169
    Points
    169
    Par défaut
    Bonjour,

    Tu utilises "_ &" au lieu de "& _" et tu construis mal ta chaine de caractères. Les _ doivent être hors de ta string. Essaie plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQLNb = SQL & _
    " group by IdInterne " & _
    "HAVING sum(iif(E1=""Oui"",1,0)+ iif(E2=""Oui"",1,0)+ iif(E3=""Oui"",1,0) " & _
    "+ iif(E4=""Oui"",1,0)+ iif(E5=""Oui"",1,0)+ iif(E6=""Oui"",1,0)) > 1;"
    ça devrait fonctionner un peu mieux !

    Cordialement,
    Beub'.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Attention aux doubles quotes. Il vaut mieux les remplacer par des simples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQLNb = SQL & _
    " group by IdInterne " & _
    "HAVING sum(iif(E1='Oui',1,0) + iif(E2='Oui',1,0) + iif(E3='Oui',1,0) " & _
    " + iif(E4='Oui',1,0) + iif(E5='Oui',1,0) + iif(E6='Oui',1,0)) > 1;"

  4. #4
    Membre actif
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Points : 203
    Points
    203
    Par défaut

    MERCI

    tu construis mal ta chaine de caractères. Les _ doivent être hors de ta string
    > ah oui, effectivement, j'avais mal compris, je pensais que le _ permettait d'aller à la ligne pour continuer à écrire son code, donc pour moi, c'était comme si j'écrivais ma requête sur une ligne (d'où l'absence de guillemets à chaque ligne)

    Attention aux doubles quotes. Il vaut mieux les remplacer par des simples
    > OK. Merci du conseil.Au départ, j'avais mis les simples quotes et j'ai cru que mon problème venait de là. Donc j'ai mis les doubles que j'ai elles memes doublées pour ne pas que ma string s'arrete en cours de route !

    Merci pour votre aide !
    Bonne fin de journée et bon week end !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/08/2009, 15h40
  2. [UBUNTU] La gravure fonctionne mais pas le démarrage
    Par khaskhos dans le forum Ubuntu
    Réponses: 12
    Dernier message: 18/01/2007, 15h37
  3. Flash - aperçu fonctionne mais pas swf seul
    Par LeBernie dans le forum Flash
    Réponses: 11
    Dernier message: 17/11/2006, 17h06
  4. [FLASH 8] : FLA qui fonctionne mais pas le SWF
    Par xtaze dans le forum Flash
    Réponses: 9
    Dernier message: 24/10/2006, 09h14
  5. Question SQL (facile) mais pas pour moi
    Par fabianrs dans le forum Langage SQL
    Réponses: 15
    Dernier message: 30/03/2006, 03h44

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