Bonjour,
J'ai le problème suivant :
J'ai créée une base de données de la gestion commerciale d'une entreprise.
Pour effectuer des recherches de clients, je passe par des zones de listes déroulantes. J'ai 2 zdl une avec le nom du client (NOM_CLI) et l'autre avec le code du client (COD_CLI).
Le soucis est le suivant : Certains noms de clients comportent des caractères interdits dans Access notamment des apostrophes, mais il y a aussi des tirets. Si bien que lorsqu'on sélectionne un nom comportant un de ces caractères, le code qui fonctionne très bien par ailleurs ne fonctionne plus, le message d'erreur suivant apparait :J'ai déjà essayé de m'occuper des apostrophes, mais je ne m'en sors pas ! (je suis débutante en code...erreur d'éxecution 3075, erreur de syntaxe (opérateur absent) dans l'expression : 'le nom du client sélectionné qui comporte une apostrophe'.)
J'ai envisagé de corriger mes fichiers manuellement, or dans les logiciels de saisie des nouveaux clients il n'est pas possible de mettre un filtre qui empêche d'utiliser ces caractères, donc la solution n'est pas viable à long terme...
J'ai essayé de bidouiller le code mais sans succès avec un chr(39) pour remplacer les apostrophes dans la chaine SQL mais sans succès non plus !
![]()
Donc voilà mon code (qui fonctionne si il n'y a pas d'apostrophe dans un nom)
Le problème est je pense dans la syntaxe du WHERE : ' "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Code_Client_AfterUpdate() Dim bd As Database, jeu As Recordset, str As String Set bd = CurrentDb str = "SELECT NOM_CLI FROM Recap1 WHERE COD_CLI='" & Me.Code_Client & "';" Set jeu = bd.OpenRecordset(str) Me.Nom_Client = jeu!NOM_CLI Me.Refresh End Sub
Connaissez-vous un moyen de préférence simple de contourner le problème ? d'écrire le WHERE différemment ou de pouvoir "isoler" le nom du client" pour qu'il n'interfère pas avec le code SQL ?
Merci d'avance de votre aide... parce que je suis bien bloquée là...![]()
Partager