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

Macros et VBA Excel Discussion :

Erreur de syntaxe vBa [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut Erreur de syntaxe vBa
    Bonjour,

    J'ai besoin de votre aide...

    Le programme marche. La requête pour créer une table en commentaire fonctionne.

    J'aimerais maintenant exécuter mon SELECT mais sa me met une erreur :

    Erreur de compilation
    Erreur de syntaxe
    Et sa surligne cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         .Open "select designation" _&
    Peut-on m'aider s'il vous plait ?

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Sub MacroDesignation()
     
      Dim conn As ADODB.Connection
      Dim rs As ADODB.Recordset
      Dim fld As ADODB.Field
      Dim sql As String
      Dim valcel As String
      valcel = Excel.Range("Feuil1!A2").Value
     
      'connect to MySQL server using MySQL ODBC 3.51 Driver
      Set conn = New ADODB.Connection
      conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=192.168.253.128;" & " DATABASE=bddintranetpol;" & "UID=user_odbc;PWD=mdpusrodbc; OPTION=3"
      conn.Open
     
    'conn.Execute "CREATE TABLE TestAdrien(ID int not null primary key, Nom varchar(20)," _& "Texte text, Date date, Temps time)"
    Set rs = New ADODB.Recordset
     
    'conn.Execute "SELECT Designation FROM produits_test WHERE code_produit = 1"
     
    'Feuil1.Range("B2").CopyFromRecordset rs, 200
     
    With rs
         .ActiveConnection = conn
         .Open "select designation" _&
                   "from produits_test" _&
                   "where code_produit=' & valcel'"
         Feuil1.Range("A2").CopyFromRecordset rs
     
        .Close
    End With
     
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
     
    End Sub
    Merci.

    Cordialement,
    DexX

  2. #2
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    Je vois trois problèmes :
    1. La concaténation n'est pas correcte : le _ est un caractère de continuation et doit être à la fin de la ligne, le & avant ou au début de la suivante :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
          .Open "select designation" & _
                      "from produits_test" (etc)
      ou bien
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
          .Open "select designation" _
                     & "from produits_test" (etc)
    2. L'intégration de la variable est mal faite, il faut fermer la chaîne de caractères, mettre la variable, puis rouvrir la chaîne pour insérer la dernière quote :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      "where code_produit='" & valcel & "'"
    3. Il faudrait prévoir des espaces entre les portions de chaîne concaténées, pour le moment la requête SQL est :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      "select designationfrom produits_testwhere code_produit=' & valcel'"

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    Bonjour,

    J'ai mis comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Open "select designation" _& "from produits_test" _& "where code_produit='" & valcel & "'"
    Sa me met toujours l'erreur de syntaxe :$.

    Voilà, comme ceci donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         .Open "select designation" _
         & "from produits_test" _
         & "where code_produit='" & valcel & "'"
    Sa me met une erreur du style :

    You have an error in your SQL syntax; check.....etc

  4. #4
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Re-bonjour,
    Il manque toujours les espaces ! Avec ta syntaxe tu essaie d'exécuter ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "select designationfrom produits_testwhere code_produit='" & valcel & "'"
    Il faut coder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     .Open "select designation " _
         & "from produits_test " _
         & "where code_produit='" & valcel & "'"

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    D'accord merci !

    Sa marche parfaitement...

    Par contre, j'aimerais que cette macro s'active automatiquement dès qu'on tape le numéro dans la cellule A2..Et non que une fois que j'ai tapé le nombre je sois obligé d'exécuter la macro manuellement.

    Est-ce possible ??

    Merci de votre aide ..

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 34
    Par défaut
    J'ai rajouté cela en cherchant un peu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Avec le code de ma macro dedans...J'aimerais maintenant que mes cellules aillent de A1 à A100...

    J'ai donc mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valcel = Feuil1.Range("A2:A100").Value
    Mais sa me met une erreur :

    Incompatibilité de tpye
    Merci de votre aide..

    Cordialement,
    DexX

    Si je met une " , " à la place de " : " sa marche mais que pour la cellule A1.

    Si je met un numéro dans une autre cellule, sur la même ligne mais dans la colonne B, sa me met rien du tout ...

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

Discussions similaires

  1. Erreur de syntaxe après passage du Sql au Vba
    Par Tipstitou dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/01/2009, 07h18
  2. [VBA] Erreur de syntaxe ?
    Par dalmasma dans le forum VBA Access
    Réponses: 10
    Dernier message: 11/07/2007, 16h03
  3. Erreur de syntaxe dans Access VBA
    Par rapace dans le forum Access
    Réponses: 3
    Dernier message: 20/12/2006, 12h29
  4. erreur de syntaxe sql dans vba
    Par @rkane dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/12/2006, 18h23
  5. VBA-Excel Erreur dans syntaxe requete en utilisant ADO
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/10/2006, 14h23

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