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 :

Problème de syntaxe ou pas sur requête VBA [AC-2013]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2014
    Messages : 46
    Points : 33
    Points
    33
    Par défaut Problème de syntaxe ou pas sur requête VBA
    Bonjour,
    j'ai construit ma requête à l'aide de VBE ,
    cette requête fonctionne correctement dans Access
    pour mes besoins je l'ai importé dans une macro vba car je vais avoir besoin de modifier certains champs et passer des arguments en fonction des choix de l'utilisateur
    mais cela coince lorsque je recopie la requête dans sql VBE et que je la copie dans VBA
    et que je la repasse comme contrôle pour la source de mon formulaire cela coince
    je n'arrive pas à trouver l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    marequete = "SELECT TB_membres.ID_adherent, TB_membres.ID_CIV, TB_membres.TB_membresNom, TB_membres.TB_membresPrenom, TB_adhesion.TBadhesionBulletin, TB_adressePrive.TB_AdresPriveAdresse, TB_adressePrive.TB_AdresPriveComplement1, TB_adressePrive.TB_AdresPriveComplement2, TB_adressePrive.TB_AdresPriveCP, TB_adressePrive.TB_AdresPriveVille, TB_adressePrive.ID_Pays" & vbCrLf & _
    "FROM (TB_membres LEFT JOIN TB_adhesion ON TB_membres.ID_adherent = TB_adhesion.ID_adherent) LEFT JOIN TB_adressePrive ON TB_membres.ID_adherent = TB_adressePrive.ID_adherent" & vbCrLf & _
    "WHERE (((TB_adhesion.TBadhesionBulletin) = True) And ((TB_adressePrive.TB_AdresPriveAdresse) Is Null Or (TB_adressePrive.TB_AdresPriveAdresse)="") And ((TB_membres.ID_Categorie) = 1))" & vbCrLf & _
    "ORDER BY TB_membres.TB_membresNom, TB_membres.ID_Categorie;"
    Debug.Print marequete
     
    Me.Controls("Frm_AdresseRevue").Form.RecordSource = marequete       ' c'est sur cette ligne que cela coince
    ce que j'obtiens au debug.print
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TB_membres.ID_adherent, TB_membres.ID_CIV, TB_membres.TB_membresNom, TB_membres.TB_membresPrenom, TB_adhesion.TBadhesionBulletin, TB_adressePrive.TB_AdresPriveAdresse, TB_adressePrive.TB_AdresPriveComplement1, TB_adressePrive.TB_AdresPriveComplement2, TB_adressePrive.TB_AdresPriveCP, TB_adressePrive.TB_AdresPriveVille, TB_adressePrive.ID_Pays
    FROM (TB_membres LEFT JOIN TB_adhesion ON TB_membres.ID_adherent = TB_adhesion.ID_adherent) LEFT JOIN TB_adressePrive ON TB_membres.ID_adherent = TB_adressePrive.ID_adherent
    WHERE (((TB_adhesion.TBadhesionBulletin) = True) And ((TB_adressePrive.TB_AdresPriveAdresse) Is Null Or (TB_adressePrive.TB_AdresPriveAdresse)=") And ((TB_membres.ID_Categorie) = 1))
    ORDER BY TB_membres.TB_membresNom, TB_membres.ID_Categorie;

    code erreur obtenu
    Nom : erreur2.jpg
Affichages : 94
Taille : 37,8 Ko

    merci pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonsoir toto159.
    Il faut entourer les guillemets par des guillemets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Or (TB_adressePrive.TB_AdresPriveAdresse)="""")
    Cdlt

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Petite astuce : pour simplifier l'écriture, dans ta syntaxe SQL, tu peux remplacer les guillemets par deux apostrophes (''). Ce qui donne alors :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    marequete = "SELECT TB_membres.ID_adherent, TB_membres.ID_CIV, TB_membres.TB_membresNom, TB_membres.TB_membresPrenom, TB_adhesion.TBadhesionBulletin, TB_adressePrive.TB_AdresPriveAdresse, TB_adressePrive.TB_AdresPriveComplement1, TB_adressePrive.TB_AdresPriveComplement2, TB_adressePrive.TB_AdresPriveCP, TB_adressePrive.TB_AdresPriveVille, TB_adressePrive.ID_Pays" & vbCrLf & _
    "FROM (TB_membres LEFT JOIN TB_adhesion ON TB_membres.ID_adherent = TB_adhesion.ID_adherent) LEFT JOIN TB_adressePrive ON TB_membres.ID_adherent = TB_adressePrive.ID_adherent" & vbCrLf & _
    "WHERE (((TB_adhesion.TBadhesionBulletin) = True) And ((TB_adressePrive.TB_AdresPriveAdresse) Is Null Or (TB_adressePrive.TB_AdresPriveAdresse)='') And ((TB_membres.ID_Categorie) = 1))" & vbCrLf & _
    "ORDER BY TB_membres.TB_membresNom, TB_membres.ID_Categorie;"
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2014
    Messages : 46
    Points : 33
    Points
    33
    Par défaut
    Franchement merci à vous deux

    et oui je suis un manche et pourtant je me suis déjà fait avoir, j’oublie fréquemment que pour les variables texte il faut les remettre entre guillemets

    encore merci à vous

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

Discussions similaires

  1. [AC-2003] Problème d'ouverture de formulaire sur requête
    Par Plume27 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/04/2013, 23h49
  2. [XL-2002] Problème de syntaxe sur une formule dans VBA
    Par beber_le_stagiaire dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/06/2009, 15h32
  3. Réponses: 3
    Dernier message: 22/12/2007, 14h06
  4. Réponses: 3
    Dernier message: 30/03/2007, 15h04
  5. problème de syntaxe delphi pour une requête sql
    Par socooooool dans le forum Bases de données
    Réponses: 12
    Dernier message: 07/07/2006, 16h53

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