Bonjour,
il n'y a pas de documentation concernant la syntaxe d'utilisation de l'apostrophe, C'est juste qu'il faut faire attention que l'on manipule des données contenant des caractères réservés (",*, & , /, =, + ...) ou que l'on nomme des objets avec des mots réservés : on ne devrait pas nommer une table TABLE ou un champ SELECT mais Access le permet car il met d'office les crochets quand on est dans l'interface graphique.
Certes, c'est pratique, surtout pour ceux qui persistent à utiliser ces mots réservés mais Access ne met pas les crochets dans les autres environnements (VBA ou en mode SQL).
Pour en revenir aux caractères ' ou ", ils sont d'utilisation relativement courante dans la langue française (dans le nom de personnes ou dans les adresses) et cela pose forcement des problèmes lorsque l'on doit construire une requête, car malgré l'utilisation de Chr() si ce caractère se trouve dans la chaîne construite cela va produire une erreur.
Un exemple :
Requete = "SELECT Count(*) FROM t_Marcheurs WHERE [Nom]='" & Selection_Nom & "' AND [Prénom]='" & Selection_Prenom & "';"
avec nom D'Harcourt et prénom Jean, Requete aura comme valeur :
"SELECT Count(*) FROM t_Marcheurs WHERE [Nom]='D'Harcourt' AND [Prénom]='Jean';"
cela aura pour conséquence de provoquer une erreur de syntaxe.
Le seul moyen sera de supprimer le caractère à la fois dans le critère et dans le champ de la sélection :
"SELECT Count(*) FROM t_Marcheurs WHERE Replace([Nom],Chr(39),"")='" & Replace([Selection_Nom],Chr(39),"") & "' AND [Prénom]='" & Selection_Prenom & "';"
Remarque :Chr(39) est le code numérique pour l'apostrophe. Et le résultat sera :
"SELECT Count(*) FROM t_Marcheurs WHERE Replace([Nom],Chr(39),"")='DHarcourt' AND [Prénom]='Jean';"
Ce genre de problème ne se résout pas en consultant la documentation en ligne mais uniquement avec l'expérience ou en parcourant les forums.
Partager