erreur 3145!!! je ne comprend pas cette erreur

Le
joseph84
Bonjour tout le monde,

je travaille sur Excel et j essaie d'importer des donnees d'une BD
Access mais il me donne toujours cette erreur


erreur d'exécustion 3145


Erreur de syntaxe dans la clause WHERE


voila mon code:


Dim rsq As DAO.Recordset, rsq2 As DAO.Recordset
Dim strSql As String, sUser As String, sOnglet As String, strSql2
As String, sFileName As String
Dim lLig As Long, x As Long, y As Long
Dim cbField As Variant, cbNumber As Variant, fieldDate As
Variant,
cbActions As Variant, fieldComm As Variant


sPathDB = "C:Documents and SettingsusernameDesktoptest"


Set Db = OpenDatabase(sPathDB & "mdbRetro.mdb")
sOnglet = ActiveSheet.Name
strSql = "SELECT * FROM Test WHERE Order ='" & Range("B1").Value &
"'"
Set rsq = Db.OpenRecordset(strSql) 'C'est ici où sa coïnce


Merci!
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
h2so4
Le #24371891
bonsoir,

peux-tu modifier le code pour afficher le contenu de strSQL et nous communi quer le résultat ?

Set Db = OpenDatabase(sPathDB & "mdbRetro.mdb")
sOnglet = ActiveSheet.Name
strSql = "SELECT * FROM Test WHERE Order ='" & Range("B1").Value & "'"
msgbox strSQL
Set rsq = Db.OpenRecordset(strSql) 'C'est ici où sa coïnce



Le lundi 2 avril 2012 20:11:52 UTC+2, joseph84 a écrit :
Bonjour tout le monde,

je travaille sur Excel et j essaie d'importer des donnees d'une BD
Access mais il me donne toujours cette erreur


erreur d'exécustion 3145


Erreur de syntaxe dans la clause WHERE


voila mon code:


Dim rsq As DAO.Recordset, rsq2 As DAO.Recordset
Dim strSql As String, sUser As String, sOnglet As String, strSql2
As String, sFileName As String
Dim lLig As Long, x As Long, y As Long
Dim cbField As Variant, cbNumber As Variant, fieldDate As
Variant,
cbActions As Variant, fieldComm As Variant


sPathDB = "C:Documents and SettingsusernameDesktoptest"


Set Db = OpenDatabase(sPathDB & "mdbRetro.mdb")
sOnglet = ActiveSheet.Name
strSql = "SELECT * FROM Test WHERE Order ='" & Range("B1").Value &
"'"
Set rsq = Db.OpenRecordset(strSql) 'C'est ici où sa coïnce


Merci!
joseph84
Le #24371881
Voila le résultat:

SELECT * FROM Test WHERE Order='TI121210'

est le champ order dans ma BD est TEXTE
MichD
Le #24372311
Bonjour,

L'erreur 3145 est générée avec ADO lorsque :

•A reserved word or argument name is misspelled or missing.
•Punctuation is incorrect.

Quelle est la valeur de variable MaVar lorsque tu exécutes la macro ?
Es-tu certain que tu as la bonne feuille active au moment de l'exécution

'---------------------------------
Dim MaVar As String
MaVar = Worksheets("NomDeLaFeuille").Range("B1")

strSql = "SELECT * FROM Test where Order ='" & MaVar & "'"

MichD
------------------------------------------
MichD
Le #24372681
En supplément, place "order" entre crochets droits pour indiquer que
c'est un champ et non une expression réservée à Access

strSql = "SELECT * FROM Test where [Order] ='" & MaVar & "'"



MichD
------------------------------------------
joseph84
Le #24378631
Merci beaucoup tout fonctionne avec les crochets doits
Publicité
Poster une réponse
Anonyme