OVH Cloud OVH Cloud

Erreur de syntaxe vba excel

6 réponses
Avatar
dexx
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 :

[QUOTE]Erreur de compilation
Erreur de syntaxe[/QUOTE]

Et sa surligne cette ligne :

[CODE] .Open "select designation" _&[/CODE]

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

[CODE]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[/CODE]

Merci.

Cordialement,
DexX

6 réponses

Avatar
MichD
Bonjour,

Ici :
"where code_produit=' & valcel'"

Essaie cette syntaxe :
"where code_produit=' & valcel & '"





MichD
--------------------------------------------
"dexx" a écrit dans le message de groupe de discussion :

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 :

[QUOTE]Erreur de compilation
Erreur de syntaxe[/QUOTE]

Et sa surligne cette ligne :

[CODE] .Open "select designation" _&[/CODE]

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

[CODE]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};" &
"SERVER2.168.253.128;" & " DATABASE½dintranetpol;" &
"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[/CODE]

Merci.

Cordialement,
DexX
Avatar
dexx
MichD a écrit le 21/06/2011 à 15h26 :
Bonjour,

Ici :
"where code_produit=' & valcel'"

Essaie cette syntaxe :
"where code_produit=' & valcel & '"





MichD
--------------------------------------------
"dexx" a écrit dans le message de groupe de discussion :


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 :

[QUOTE]Erreur de compilation
Erreur de syntaxe[/QUOTE]

Et sa surligne cette ligne :

[CODE] .Open "select designation" _&[/CODE]

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

[CODE]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};" &
"SERVER2.168.253.128;" & "
DATABASE½dintranetpol;" &
"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[/CODE]

Merci.

Cordialement,
DexX


Quand j'exécute sa me met cette erreur :

[MySQL][ODBC 5.1 Driver].........You have an error in your SQL syntax; check the manual ...etc

J'aimerais que dans le cellule A1 lorsqu'on tape 1 sa mette la désignation correspondant dans la cellule B2 avec une macro qui exécute ce programme..
Avatar
FdeCourt
Salut,

Avec ceci :
.Open "select designation " & _
"from produits_test " & _
"where code_produit='" & valcel & "'"

Cordialement,

F.
Avatar
FxM
Bonjour,

Plusieurs points qui m'ont emm...bêté durant des essais avec MyODBC 5.1 :
- une requête SQL se termine par ;
- rejet du caractère ' qu'il m'a fallu remplacer par chr(96)
- enfin, j'ai un doute sur la notation _& dans ta requête .open (etc...)

Vois du coté de :
.Open "select designation from produits_test where code_produit='" &
valcel & "';"
(attention aux coupures de ligne ! Ce qui précède est sur une ligne.)

@+
FxM




Le 21/06/2011 15:51, dexx a écrit :
MichD a écrit le 21/06/2011 à 15h26 :
Bonjour,

Ici :
"where code_produit='& valcel'"

Essaie cette syntaxe :
"where code_produit='& valcel& '"





MichD
--------------------------------------------
"dexx" a écrit dans le message de groupe de discussion :


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 :

[QUOTE]Erreur de compilation
Erreur de syntaxe[/QUOTE]

Et sa surligne cette ligne :

[CODE] .Open "select designation" _&[/CODE]

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

[CODE]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};"&
"SERVER2.168.253.128;"& "
DATABASE½dintranetpol;"&
"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[/CODE]

Merci.

Cordialement,
DexX


Quand j'exécute sa me met cette erreur :

[MySQL][ODBC 5.1 Driver].........You have an error in your SQL syntax; check
the manual ...etc

J'aimerais que dans le cellule A1 lorsqu'on tape 1 sa mette la désignation
correspondant dans la cellule B2 avec une macro qui exécute ce programme..
Avatar
Gloops
dexx a écrit, le 21/06/2011 15:13 :
.Open "select designation" _&
"from produits_test" _&
"where code_produit='& valcel'"
Feuil1.Range("A2").CopyFromRecordset rs




Bonjour,

Première chose : SQL ne va jamais accepter de lancer une requête qui n'a
pas un espace devant FROM.

Deuxième chose : idem devant WHERE.


Hein ? 21 juin ? Mais on en est où là-dessus ?

Mouaif, en fait, si il y avait quelqu'un au bout du fil, il pouvait s'en
sortir (pour cette fois-ci) avec les requêtes proposées sans dire ce qui
a été modifié, donc ... On dirait qu'il ne se rappelle pas où il a posé
la question.
Avatar
Gloops
FxM a écrit, le 09/07/2011 15:29 :
Bonjour,

Plusieurs points qui m'ont emm...bêté durant des essais avec MyODBC 5.1 :
- une requête SQL se termine par ;
- rejet du caractère ' qu'il m'a fallu remplacer par chr(96)
- enfin, j'ai un doute sur la notation _& dans ta requête .open (etc. ..)

Vois du coté de :
.Open "select designation from produits_test where code_produit='" &
valcel & "';"
(attention aux coupures de ligne ! Ce qui précède est sur une ligne .)

@+
FxM



Bien vu, l'idée de regarder dans la chaîne de connexion pour connaî tre
le type de base, et tester dessus.