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

Fermé
Leonidas1508 Messages postés 8 Date d'inscription jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022 - 29 déc. 2022 à 16:50
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 30 déc. 2022 à 19:27

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 26008 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
29 déc. 2022 à 16:59

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 jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022
29 déc. 2022 à 17:17

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 26008 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
29 déc. 2022 à 17:29

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 jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022
29 déc. 2022 à 17:48

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 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Leonidas1508 Messages postés 8 Date d'inscription jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022
29 déc. 2022 à 18:09

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 jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
30 déc. 2022 à 12:46

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 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Leonidas1508 Messages postés 8 Date d'inscription jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022
30 déc. 2022 à 19:27

montre nous le code modifié.

0
blux Messages postés 26008 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
29 déc. 2022 à 18:09

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


0
Leonidas1508 Messages postés 8 Date d'inscription jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022
30 déc. 2022 à 12:46

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

0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
29 déc. 2022 à 18:17

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 26008 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
29 déc. 2022 à 18:29

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 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > blux Messages postés 26008 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024
29 déc. 2022 à 18:46

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 jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022
30 déc. 2022 à 12:47

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 jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
30 déc. 2022 à 12:48

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

0
Leonidas1508 Messages postés 8 Date d'inscription jeudi 29 décembre 2022 Statut Membre Dernière intervention 30 décembre 2022 > blux Messages postés 26008 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024
30 déc. 2022 à 12:49

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 26008 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
30 déc. 2022 à 14:05

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