Erreur de syntaxe (opérateur absent) dans l'expression acces

Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 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

blux Messages postés 27132 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 

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 : "


0
Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

Merci @blux StatutModérateur j'ai changé les ' par " et là il me retourne aucune donnée pourtant y'a des données à retourner au fait. et là, sur tous les autres clients, il retourne aucune données alors qu'avant c'est seulement les clients avec apostrophe qui retournait erreur de syntaxe 

0
blux Messages postés 27132 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 

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]).


0
Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

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 Sub

Private 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 Sub

Private 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 Sub

Private 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 Sub

Private 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 Sub

Private 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 Sub

Private 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 Sub

Private 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 Sub

Private 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 

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

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?

0
Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

Merci @yg_be StatutContributeur. D'accord. je prendrai compte de cela. Je montre juste les modules sur lesquels fonctionnent le formulaire Access

Le code montré au départ, je l'ai modifié en remplaçant les ' par les "

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

montre nous le code modifié.

0
blux Messages postés 27132 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 

Le requête en erreur n'est pas dans le code que tu as donné...


0
Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

donc cela se trouve dans la première alors. Bonjour @blux StatutModérateur

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 

Comment se fait-il que ce problème apparaisse subitement?

Modifies-tu le travail de quelqu'un sans comprendre ce qu'il a fait?

0
blux Messages postés 27132 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 

Comment se fait-il que ce problème apparaisse subitement?

C'est peut-être la récente création de l'abbaye qui le déclenche...

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > blux Messages postés 27132 Date d'inscription   Statut Modérateur Dernière intervention  
 

Le code existant semble se prémunir contre la présence d'apostrophe dans les champs:

"SELECT ... where Client Like '*" & Replace(Me.[Rech_Client], "'", "''") & "*'"
0
Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

J'essaie de modifier en comprenant. Mais je me suis perdu voila pourquoi je me tourne vers les experts. 

0
Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 

tout à fait. c'est pour cela que je me sens perdu 

0
Leonidas1508 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   > blux Messages postés 27132 Date d'inscription   Statut Modérateur Dernière intervention  
 

y'a pas eu de nouvelle création. le client a toujours existé on a juste changé de représentant au client 

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 27132 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 

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...").


0