Erreur de syntaxe vba excel

Fermé
DexX39800 Messages postés 43 Date d'inscription mercredi 8 juin 2011 Statut Membre Dernière intervention 10 novembre 2013 - Modifié par DexX39800 le 21/06/2011 à 15:16
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 21 juin 2011 à 16:58
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 :

     .Open "select designation" _&


Peut-on m'aider s'il vous plait ?

]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

A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 21/06/2011 à 17:20
Bonjour

set rs = New ADODB.Recordset   

set rs= conn.Execute("SELECT Designation FROM produits_test WHERE code_produit = 1")  
                                    
Feuil1.Range("B2").CopyFromRecordset rs, 200 


et ajoute cette précaution
If rs.EOF Then  
        Exit Sub  
    End If


l'autre méthode plus bas est bizarre mais je comprends mal ta demande sur DVP.... enfin, passons
https://www.developpez.net/forums/d1098619/logiciels/microsoft-office/excel/macros-vba-excel/erreur-syntaxe-vba/
Michel
0