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 :

Recherche multi-critère de Cafeïne - Apostrophe dans SQL [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut Recherche multi-critère de Cafeïne - Apostrophe dans SQL
    Bonjour,

    Ce code provient du tuto "Recherche multi-critères" de Cafeïne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If Not Me.chkFRcourant Then
        SQL = SQL & "and tbl_LocFrRu!FRcourant like '*" & Me.cmbRechFRcourant & "*'"
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where") - Len("Where") + 1))
     
    SQL = SQL & "order by tbl_LocFrRU!LocRU;"
    MaRecherche = SQL
    Me.LblStats.Caption = DCount("*", "Tbl_LocFrRu", SQLWhere) & "/" & DCount("*", "Tbl_LocFrRu")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
    J'ai un message d'erreur quand le contrôle de liste déroulante (Me.cmbRechFRcourant) contient une apostrophe " ' ".
    Exemple : "la cuisson d ( ' ) un oeuf"

    Comment palier à ça ?

    Merci de votre attention.

    JCB57

  2. #2
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Points : 63
    Points
    63
    Par défaut
    Bonsoir Durdur,

    pour éviter ce problème, j'ai utilisé la fonction "Replace" lors de l'utilisation du champ qui peut contenir un ' ou un "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        If InStr(1, MonChamp, Chr(34)) > 0 Or InStr(1, MonChamp, "'") > 0 Then
            MonChamp= Replace(MonChamp, Chr(34), Chr(148)): ' caractere "
            MonChamp= Replace(MonChamp, Chr(39), Chr(146)): ' caractere '
        End If
    les caractères sont visuellement identiques mais ne sont pas pris en compte dans les requêtes
    si ça peut aider ...
    Olivier

  3. #3
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    Je vous remercie de cette réponse rapide que je n'ai pu mettre en application que ce matin.

    Malheureusement je ne sais pas comment intervenir sur le contrôle de liste déroulante "Me.cmbRechFrcourant" qui contient l'objet de la recherche, donc je ne peux pas utiliser l'astuce décrite dans votre réponse.

    JCB57

  4. #4
    Membre habitué Avatar de DurDur
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2005
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2005
    Messages : 244
    Points : 135
    Points
    135
    Par défaut
    Bonjour,

    J'avais bien lu qu'il fallait remplacer les apostrophes par leur code ASCII "chr(34)", mais comment et où le faire ?

    Voilà la solution (que je ne suis pas prête d'oublier).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = SQL & "and tbl_LocFrRu!FRcourant like " & Chr(34) & "*" & Me.cmbRechFRcourant & "*" & Chr(34) & ""

    Cordialement,

    JCB57

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/09/2012, 13h13
  2. recherche multi-critères dans un formulaire de recherche
    Par sam1975 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/08/2009, 18h12
  3. Réponses: 7
    Dernier message: 26/10/2006, 15h13
  4. Réponses: 6
    Dernier message: 28/06/2006, 15h01
  5. problème SQL avec le tutoriel recherche multi critère
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/12/2005, 19h33

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