Comment échapper les (') dans une requête sous ACCESS
Résolu/Fermé
yfchauer
Messages postés
78
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
18 janvier 2014
-
2 avril 2013 à 20:36
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 - 6 avril 2013 à 19:02
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 - 6 avril 2013 à 19:02
A voir également:
- Comment échapper les (') dans une requête sous ACCESS
- Hns-self-wan-access-ipv6 ✓ - Forum Réseau
- Quick access service - Forum Logiciels
- Access appdata - Guide
- Access runtime ✓ - Forum Access
- Bios access - Guide
4 réponses
Utilisateur anonyme
Modifié par le père. le 3/04/2013 à 08:39
Modifié par le père. le 3/04/2013 à 08:39
Bonjour
Pour échapper les apostrophes, il suffit de les doubler. Je me suis écrit la fonction suivante (il y a sans doute mieux) avec laquelle je n'ai jamais eu de problème :
Pour échapper les apostrophes, il suffit de les doubler. Je me suis écrit la fonction suivante (il y a sans doute mieux) avec laquelle je n'ai jamais eu de problème :
' double les apostrophes pour pouvoir passer des chaines aux requêtes SQL ' ceci suppose qu'on passe les chaînes aux requêtes entre apostrophes... Function ChaineBD(ByVal src As String) As String Dim k%, resultat$, r% k = 1 resultat = "" Do r = InStr(k, src, "'") If r = 0 Then ChaineBD = resultat & Mid$(src, k) ' on n'a rien trouvé, on ajoute la fin de la chaîne Exit Function End If resultat = resultat & Mid$(src, k, r - k + 1) & "'" k = r + 1 Loop End Function
yfchauer
Messages postés
78
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
18 janvier 2014
2
6 avril 2013 à 01:46
6 avril 2013 à 01:46
Bonsoir le père
Merci de la fonction,
Mais comment je peux l'intégrer dans mon code?
Merci de la fonction,
Mais comment je peux l'intégrer dans mon code?
Utilisateur anonyme
6 avril 2013 à 11:16
6 avril 2013 à 11:16
Tu mets la fonction dans un module.
Ensuite, tu peux ré-écrire ta requête et utilisant la fonction sur toutes les valeurs de type texte. Elle inclut les apostrophes, ce qui t'évite d'ajouter des & "'" partout :
Je ne te montre qu'un exemple :
devient
ou
Au fait, tu es sûr de ctte ligne là avec ses deux + qui se suivent :
Ensuite, tu peux ré-écrire ta requête et utilisant la fonction sur toutes les valeurs de type texte. Elle inclut les apostrophes, ce qui t'évite d'ajouter des & "'" partout :
Je ne te montre qu'un exemple :
SQL = SQL & "AND T_Editeurs!NomEditeur LIKE '*" & Me.TxtEditeur & "*'"
devient
SQL = SQL & "AND T_Editeurs!NomEditeur LIKE " & ChaineBD("*" & Me.TxtEditeur & "*")
ou
Au fait, tu es sûr de ctte ligne là avec ses deux + qui se suivent :
SQL = SQL & "AND T_Auteurs![PrenomAuteur] + + [NomAuteur] LIKE '*" & Me.TxtAuteur & "*'"
yfchauer
Messages postés
78
Date d'inscription
mardi 11 décembre 2007
Statut
Membre
Dernière intervention
18 janvier 2014
2
6 avril 2013 à 19:02
6 avril 2013 à 19:02
Bonsoir,
J'ai un message d'erreur
"Erreur de compilation : Variable ou procédure attendue, et non un module"
lorsque j'intègre la fonction dans le code.
Quant à la question
[...]
Au fait, tu es sûr de cette ligne là avec ses deux + qui se suivent :
[...]
Oui, la concaténation fonctionne
J'ai un message d'erreur
"Erreur de compilation : Variable ou procédure attendue, et non un module"
lorsque j'intègre la fonction dans le code.
Quant à la question
[...]
Au fait, tu es sûr de cette ligne là avec ses deux + qui se suivent :
SQL = SQL & "AND T_Auteurs![PrenomAuteur] + + [NomAuteur] LIKE '*" & Me.TxtAuteur & "*'"
[...]
Oui, la concaténation fonctionne