Erreur de syntaxe (opérateur absent) dans l'expression acces
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
voici le client recherché : ABBAYE DE L'ETOILE
voici le message que j'ai :
erreur de syntaxe(opérateur absent) dans l'expression : [CT_Num]='00000' AND [EC_Sens]=0 AND [ec_piece]='1111' and [ec_intitule]='Facture N° 1111 / ABBAYE DE L'ETOILE' AND [EC_Lettre]=0 AND [jm_DATE] >=#01/01/001# and [ec_No]<=22222.
pourrez-vous m'aider
si je clique sur d'autre j'ai le bon resultat mais surtout sur ceux dont on a enregistré avec des apostrophes y'a cette erreur
le macro est :
condition where = [CT_Num]='"&[RefClient]&"'"
5 réponses
-
Salut,
c'est normal, ton délimiteur de chaine est l'apostrophe et dans ton nom, tu as une apostrophe, donc access ne sait pas gérer, il croit que tu cherches Facture N° 1111 / ABBAYE DE L et ensuite il trouve ETOILE' qui ne correspond à aucune syntaxe connue de lui.
Change le délimiteur par un guillemet : "
-
Et si tu ne changes les ' par des " que pour la condition [ec_intitule] ?
Parce que je me méfie des données qui semblent être numériques mais qu'on va tester comme des chaines (genre [CT_Num]).
-
Private Sub Effacer_Recherche_Click()
Me.Rech_RefClient.Value = ""
Me.Rech_Client.Value = ""
Me.Rech_Collab.Value = ""
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].Client Like '*" & Replace(Me.[Rech_Client], "'", "''") & "*'"
End SubPrivate Sub Rech_Client_AfterUpdate()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].Client Like '*" & Replace(Me.[Rech_Client], "'", "''") & "*'"
End SubPrivate Sub Rech_Client_Change()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].Client Like '*" & Me.[Rech_Client] & "*'"
End SubPrivate Sub Rech_Client_Enter()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].Client Like '*" & Me.[Rech_Client] & "*'"
End SubPrivate Sub Rech_Collab_AfterUpdate()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].CO_Nom Like '*" & Me.[Rech_Collab] & "*'"
End SubPrivate Sub Rech_Collab_Change()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].CO_Nom Like '*" & Me.[Rech_Collab] & "*'"
End SubPrivate Sub Rech_RefClient_AfterUpdate()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].RefClient Like '*" & Me.[Rech_RefClient] & "*'"
End SubPrivate Sub Rech_RefClient_Change()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].RefClient Like '*" & Me.[Rech_RefClient] & "*'"
End SubPrivate Sub Rech_RefClient_Enter()
Forms![Gestion des Plafonds]![Controle Depassement Client].Form.RecordSource = "SELECT [Controle Depassement Client].RefClient,[Controle Depassement Client].Client,[Controle Depassement Client].Plafond,[Controle Depassement Client].SoldeTot,[Controle Depassement Client].Depassement,[Controle Depassement Client].SoldeA,[Controle Depassement Client].SoldeB,[Controle Depassement Client].CO_Nom,[Controle Depassement Client].BL,[Controle Depassement Client].[Total BL] from [Controle Depassement Client] where [Controle Depassement Client].RefClient Like '*" & Me.[Rech_RefClient] & "*'"
End Sub
voici un peu les autres requetes qui regissent le macro. j'ai repris le travail de quelqu'un et j'ai du mal à comprendre ce qu'il a fait au fait
bonjour,
quand tu partages du code, merci de tenir compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Quel est le lien entre l'expression montrée au départ et le code montré en #4?
Comme tu as modifié le code montré au départ, ne penses-tu pas utile de montrer ce qu'il est devenu?
-
-
Le requête en erreur n'est pas dans le code que tu as donné...
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
Comment se fait-il que ce problème apparaisse subitement?
Modifies-tu le travail de quelqu'un sans comprendre ce qu'il a fait?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Donc je maintiens ce que j'ai dit, l'erreur que tu nous montres ne semble pas couverte par le traitement spécifique des autres requêtes dont tu nous as donné le code (la clause "replace...").