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 :

problème avec les apostrophes dans une le remplissage d'une liste déroulante [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut problème avec les apostrophes dans une le remplissage d'une liste déroulante
    Bonjour,

    Pour remplir le contenu d'une liste déroulante, j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Function Liste_Entreprise(Txt As String)
     
        If Len(Txt) < 3 Then
            SQl = "SELECT TOP 10 REPertoire.REP_Num, REPertoire.REP_Raison, REPertoire.REP_Codepostal, REPertoire.REP_Ville, REPertoire.REP_Actif " & _
            "FROM REPertoire " & _
            "WHERE REPertoire.REP_Raison Is Not Null AND REPertoire.REP_Raison Like '" & Txt & "*' AND REPertoire.REP_Client=True AND REPertoire.REP_Actif=True ORDER BY REPertoire.REP_Raison;"
        Else
            SQl = "SELECT TOP 10 REPertoire.REP_Num, REPertoire.REP_Raison, REPertoire.REP_Codepostal, REPertoire.REP_Ville, REPertoire.REP_Actif " & _
            "FROM REPertoire " & _
            "WHERE REPertoire.REP_Raison Is Not Null AND REPertoire.REP_Raison Like '*" & Txt & "*' AND REPertoire.REP_Client=True AND REPertoire.REP_Actif=True ORDER BY REPertoire.REP_Raison;"
        End If
     
        Me.S_Entreprise.RowSource = SQl
     
    End Function
    ça fonctionne bien sauf si le texte recherché contient un apostrophe notamment. Si c'est le cas, les textes correspondants n’apparaissent pas dans la liste et si je sélectionne un texte avec un apostrophe, il est bien sélectionné mais le champ est vide (liste 2 colonnes, id en 1 avec largeur à 0 et raison sociale en 2).

    Je n'ai pas se problème si je laisse Access gérer l'alimentation avec une requête mais le truc c'est c'est que ma liste complète contient plus de 60000 noms et c'est "long" à alimenter. Du coup, j'alimente en VBA à la saisie du texte.

    Si vous avez une explication et mieux, une solution, suis preneur.

    Merci d'avance ;-)

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Ben oui il faut mettre replace(txt,"'","''") à la place de txt

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2010
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 359
    Points : 508
    Points
    508
    Par défaut
    Merci nico,

    Et le problème n'est que pour les apostrophes ou d'autres caractères sont problématiques ?

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    En SQL l'apostrophe est le délimiteur de string, c'est donc le seul caractère qui pose problème.

    Pour pouvoir mettre une apostrophe dans un texte il a été convenu il y a bien longtemps qu'il fallait la doubler, et les compilateurs savent que '' est en réalité ' quand il est entre deux '
    Ainsi par exemple '''' est le caractère ' et il faut écrire 'aujourd''hui j''ai appris quelque chose'

    Dans d'autres langages comme le VBA c'est la double apostrophe et le problème se pose moins souvent car " est peu utilisé dans les textes
    msgbox """" renvoie le caractère "
    msgbox "j'ai envie de dire ""ça va"""

    Attention à bien distinguer '' et "
    Faut arrêter de bricoler et retourner à l'école

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

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  3. Problèmes avec les Runnable dans une activité
    Par DiR95 dans le forum Android
    Réponses: 2
    Dernier message: 08/06/2016, 13h17
  4. Problème avec les update dans une BDD
    Par P.O.K dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/06/2011, 17h07
  5. [XSLT] probleme avec les doublons dans une liste deroulante
    Par mikooo dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 02/04/2007, 15h37

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