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 :

erreur syntaxe VBA ? [AC-2019]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut erreur syntaxe VBA ?
    Bonjour à tous et à toutes,

    Dans un formulaire, j'ai un bouton qui créé une requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Sub MAJCotisDuesCR_sans_mail(Numdebut As Integer)
      Dim sSql As String
      Dim q As QueryDef
      sSql = "TRANSFORM Sum(T_Cotisation.Cotisation_Du) AS SommeDeCotisation_Du" _
    & " SELECT [T Adhérents].Titre,[T Adhérents].N°Adherent, [T Adhérents].Nom, [T Adhérents].Prenom, Sum(T_Cotisation.Cotisation_Du) AS Total, [T Adhérents].Adresse, IIf(Mid([CP],3,1)='-',Mid([CP],InStr([CP],'-')+1),[CP]) AS CP1, [T Adhérents].Ville, [T Adhérents].Pays, [T Adhérents].EMail" _
    & " FROM [T Adhérents] INNER JOIN T_Cotisation ON [T Adhérents].N°Adherent = T_Cotisation.T_Adherent_FK" _
    & " WHERE (((T_Cotisation.Cotisation_An) Between " & Numdebut _
    & " And " & Numdebut - 4 & ") AND (([T Adhérents].Adherent)=True)) AND (([T Adhérents].EMail)=""))" _
    & " GROUP BY[T Adhérents].Titre, [T Adhérents].N°Adherent, [T Adhérents].Nom, [T Adhérents].Prenom, [T Adhérents].Adresse, IIf(Mid([CP],3,1)='-',Mid([CP],InStr([CP],'-')+1),[CP]), [T Adhérents].Ville, [T Adhérents].Pays, [T Adhérents].EMail" _
    & " ORDER BY[T Adhérents].Nom, [T Adhérents].Prenom" _
    & " PIVOT T_Cotisation.Cotisation_An;"
     
    Set q = CurrentDb.QueryDefs("0_R_COTIS_DUES_CR_adh_sans_mails")
    q.SQL = sSql
    End Sub
    Cela fonctionnait très bien jusqu'au moment où j'ai voulu limiter cette requête aux adhérents n'ayant pas de mail (afin de leur faire un publipostage postal).
    Dans la condition WHERE, j'ai donc rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (([T Adhérents].EMail)="")
    Et là c'est le drame , cela bogue sur la ligne
    J'ai eu beau faire des tas d'essais, aucun résultat.
    Pour info, si je modifie la requête initiale qui concernait tous le monde et qu'en critère sur le champ EMail, je mets ="", j'ai bien le résultat escompté.


    Merci de votre aide
    A+
    C15

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 817
    Points : 14 911
    Points
    14 911
    Par défaut
    bonjour,
    c'est en général un problème de parenthèses, un conseil, enlèves-les si tu n'as pas de OR.
    ici, tu as 2 parenthèses ouvrantes et 3 fermantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (([T Adhérents].EMail)=""))

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 653
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 653
    Points : 34 360
    Points
    34 360
    Par défaut
    Salut

    autre conseil, lorsque tu travailles avec les chaînes de caractères pour le SQL, il faut utiliser les apostrophes '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ..."AND (([T Adhérents].EMail)=''))"

  4. #4
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour à tous les 2,

    Avant d'avoir vu la réponse de Jean-Philippe, j'avais fait des essais multiples et variés...et sans succès sur les différentes combinaisons de parenthèses.
    Par contre du fait du AND supplémentaire, il me fallait supprimer une ) après le True

    Puis j'ai fait un test sur une adresse mail précise que j'ai du mettre comme ceci "mapomme@sfr.fr", et cela a marché
    C'est là que j'ai compris que il me fallait écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (([T Adhérents].EMail)="""")) " _
    La version de Jean-Philippe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (([T Adhérents].EMail)='')) " _
    marche aussi parfaitement

    Merci à vous deux.
    Bon week-end
    C15

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

Discussions similaires

  1. [XL-2013] Syntaxe VBA (Erreur de manipulation liée au graphe)
    Par vinciHorus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/07/2020, 14h00
  2. [AC-2007] Erreur syntaxe dans concaténation de nom Access VBA
    Par Blado_sap dans le forum Access
    Réponses: 2
    Dernier message: 04/03/2015, 12h39
  3. [XL-2007] Erreur de syntaxe vBa
    Par DexX39800 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/06/2011, 16h53
  4. erreur syntaxe dans requete
    Par dom - ien moutiers dans le forum Requêtes
    Réponses: 5
    Dernier message: 19/04/2004, 11h54
  5. [EXISTS] Version MySql ou erreur syntaxe ?
    Par Kimael dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/04/2004, 17h30

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