Twitter iPhone pliant OnePlus 12 PS5 Disney+ Orange Livebox Windows 11 ChatGPT

erreur 3145!!! je ne comprend pas cette erreur

5 réponses
Avatar
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=E9custion 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 =3D "C:\Documents and Settings\username\Desktop\test\"


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


Merci!

5 réponses

Avatar
h2so4
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!
Avatar
joseph84
Voila le résultat:

SELECT * FROM Test WHERE Order='TI121210'

est le champ order dans ma BD est TEXTE
Avatar
MichD
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
------------------------------------------
Avatar
MichD
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
------------------------------------------
Avatar
joseph84
Merci beaucoup tout fonctionne avec les crochets doits