IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[Access] apostrophe ds un nom, pb de requête SQL


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut [Access] apostrophe ds un nom, pb de requête SQL
    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 :
    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 déjà essayé de m'occuper des apostrophes, mais je ne m'en sors pas ! (je suis débutante en code... )
    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)
    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
    Le problème est je pense dans la syntaxe du WHERE : ' "

    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à...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour shunter ce problème il faut doubler les quotes. Fais une recherche sur le forum avec Quote, tu trouveras des exemples.

    Une autre indication, il faut utiliser la fonction Replace.

    Starec

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut
    ok, merci de l'info, je vais recherche comment faire pour doubler les quotes.

    Mais je ne connais pas la fonction Replace, quelle est son utilité et comment fonctionne-t-elle ?

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    La fonction s'appelle Replace et pour la syntaxe.

    Starec

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 84
    Par défaut
    Merci bien Starec!

    Surtout de m'avoir indiqué le chemin, parce quand on est débutant comme moi, ça n'est pas toujours facile de savoit quoi chercher !

    A +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variable en tant que nom de colonne requête SQL
    Par hugoclo dans le forum Langage
    Réponses: 12
    Dernier message: 07/03/2014, 22h32
  2. Utiliser une variable comme nom de table Access dans une requête SQL
    Par stsym dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/10/2011, 17h11
  3. Réponses: 2
    Dernier message: 03/05/2006, 14h41
  4. Requêtes SQL pour access
    Par cciocc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/04/2005, 08h45
  5. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo