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

SQL WHERE

4 réponses
Avatar
Chevrot
bonjour à tous,

Je dispose d'une requête issue de deux tables; l'une d'entre elles contient
un champ txt nommé "Finess". Je cherche, par un processus en boucle à
attribuer successivement à "Finess", les valeurs puisées dans une table
"Sélection établissement" contenant diverses valeurs pour "Finess", puis à
exécuter des instructions.

Ci dessous le processus que j'aic créé. Malheureusement une boite de message
sort:

Erreur d'exécution 3075

Erreur de syntaxe opérateur absent dans l'expression '[Synthèse
09].Finess=[Certification Evaluation].FinessWHERE (Synthèse
09].[Finess]=010780154',


Pourriez vous m'indiquer l'erreur de syntaxe?

Sub Exécution()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Sélection établissement", dbOpenDynaset)
Dim db As DAO.Database
Dim SQL As String
Dim rq As DAO.QueryDef
Set db = CurrentDb()
rs.MoveLast
rs.MoveFirst

While Not rs.EOF

DoCmd.SetWarnings False

SQL = Left(db.QueryDefs("Util analyse certification").SQL,
InStrRev(db.QueryDefs("Util analyse certification").SQL, ";") - 1)
SQL = SQL & "WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess], ",",
".")
Set rq = db.CreateQueryDef("Util analyse certification 01", SQL)

DoCmd.OpenReport "CR autres", acViewNormal, "", "", acNormal
DoCmd.OpenReport "CR Certification", acViewNormal, "", "", acNormal
DoCmd.OpenReport "CR PMSI", acViewNormal, "", "", acNormal

DoCmd.DeleteObject acTable, "Util analyse certification 01"

DoCmd.SetWarnings True

rs.MoveNext

Wend

Set rq = Nothing
Set db = Nothing
rs.Close
Set rs = Nothing
End Sub


Merci d'avance

Chevrot

4 réponses

Avatar
db
Chevrot a écrit :
bonjour à tous,
Erreur de syntaxe opérateur absent dans l'expression '[Synthèse
09].Finess=[Certification Evaluation].FinessWHERE (Synthèse
09].[Finess]0780154',


Pourriez vous m'indiquer l'erreur de syntaxe?

SQL = Left(db.QueryDefs("Util analyse certification").SQL,
InStrRev(db.QueryDefs("Util analyse certification").SQL, ";") - 1)
SQL = SQL & "WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess], ",",
".")



Il faut rajouter une espace avant le WHERE :

SQL = SQL & " WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess],
",", ".")

db
Avatar
Chevrot
Merci; néanmoins il persiste une difficulté; le champ Finess est de format
txt et il apparaît dans la requête sans guillemets donc sous format num. Que
faire?

Merci

Chevrot

"db" a écrit :

Chevrot a écrit :
> bonjour à tous,
> Erreur de syntaxe opérateur absent dans l'expression '[Synthèse
> 09].Finess=[Certification Evaluation].FinessWHERE (Synthèse
> 09].[Finess]0780154',
>
>
> Pourriez vous m'indiquer l'erreur de syntaxe?
>
> SQL = Left(db.QueryDefs("Util analyse certification").SQL,
> InStrRev(db.QueryDefs("Util analyse certification").SQL, ";") - 1)
> SQL = SQL & "WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess], ",",
> ".")

Il faut rajouter une espace avant le WHERE :

SQL = SQL & " WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess],
",", ".")

db
.



Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir, db

Bravo pour l'espace féminine, c'est tellement rare (et HS)

Cdt, Blaise
---- ---- ----


"db" a écrit dans le message de news:
%
Chevrot a écrit :
bonjour à tous,
Erreur de syntaxe opérateur absent dans l'expression '[Synthèse
09].Finess=[Certification Evaluation].FinessWHERE (Synthèse
09].[Finess]0780154',


Pourriez vous m'indiquer l'erreur de syntaxe?

SQL = Left(db.QueryDefs("Util analyse certification").SQL,
InStrRev(db.QueryDefs("Util analyse certification").SQL, ";") - 1)
SQL = SQL & "WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess],
",", ".")



Il faut rajouter une espace avant le WHERE :

SQL = SQL & " WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess], ",",
".")

db


Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

Remplacer au moins dans «InStrRev» les " par '


Cdt, Blaise
---- ---- ----


"Chevrot" a écrit dans le message de
news:
Merci; néanmoins il persiste une difficulté; le champ Finess est de format
txt et il apparaît dans la requête sans guillemets donc sous format num.
Que
faire?

Merci

Chevrot

"db" a écrit :

Chevrot a écrit :
> bonjour à tous,
> Erreur de syntaxe opérateur absent dans l'expression '[Synthèse
> 09].Finess=[Certification Evaluation].FinessWHERE (Synthèse
> 09].[Finess]0780154',
>
>
> Pourriez vous m'indiquer l'erreur de syntaxe?
>
> SQL = Left(db.QueryDefs("Util analyse certification").SQL,
> InStrRev(db.QueryDefs("Util analyse certification").SQL, ";") - 1)
> SQL = SQL & "WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess],
> ",",
> ".")

Il faut rajouter une espace avant le WHERE :

SQL = SQL & " WHERE [Synthèse 09].[Finess] =" & Replace(rs![Finess],
",", ".")

db
.