Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

.find avec des "'"

8 réponses
Avatar
sylvain chipaux
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" =E9tant le r=E9sultat (v=E9rifi=E9) d'une fonction
qui remplace les ' par des *.
le r=E9sultat est toujours faux. pourquoi ?.

si quelqu'un a une id=E9e ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain

8 réponses

Avatar
pourquoi change tu tes ' par des * ?

généralement pour une requête on double les ' donc on
remplace ' par '' histoire que vba le prenne bien pour ce
qu'il est ... non ?

désolé si je répond à côté de la plaque je suis novice

coyott le novice
-----Message d'origine-----
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain

.



Avatar
Gilbert
Bonjour
Je ne sais pas ce que fait exactement ta fonction nnom, mais si tu remplace
les ' par des *, lorsque tu recherches par exemple "[nom] like 'a'b'", tu
vas en fait rechercher "[nom] like 'a*b'" donc tous les noms commençant par
a et finissant par b.
Il serait préférable de remplacer les ' par '' (deux apostrophes)

Cordialement

Gilbert

"sylvain chipaux" a écrit dans le
message de news:1740701c418a3$4e988210$
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain
Avatar
sylvain
en mettant deux ', ça donne ça
rst.Find "[nom] like ''" & nnom & "''", , adSearchForward
et VBA rale : erreur d'execution 3001 - les arguments sont
de type incorrect, en dehors des limites autorisées ou en
conflit les uns avec les autre.
Peut-être suggères-tu de remplacer les ' dans les champs
par '' !. autant dire que ça n'est pas gérable.

Il doit quand même bien y avoir moyen de faire une requete
sur une table dont des champs peuvent contenir ' !. Ou
alors il y aurait un liste de char interdits ?!?.

-----Message d'origine-----
pourquoi change tu tes ' par des * ?

généralement pour une requête on double les ' donc on
remplace ' par '' histoire que vba le prenne bien pour ce
qu'il est ... non ?

désolé si je répond à côté de la plaque je suis novice

coyott le novice
-----Message d'origine-----
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain

.

.





Avatar
sylvain
je comprend les limites de mon idée mais je ne peux
quand meme pas convertir tous les champs de toutes
mes tables !. De plus le problème se reposera des
que certains autre symbole arriveront.
comme &,_| etc.

Sylvain

-----Message d'origine-----
Bonjour
Je ne sais pas ce que fait exactement ta fonction nnom,
mais si tu remplace

les ' par des *, lorsque tu recherches par exemple "[nom]
like 'a'b'", tu

vas en fait rechercher "[nom] like 'a*b'" donc tous les
noms commençant par

a et finissant par b.
Il serait préférable de remplacer les ' par '' (deux
apostrophes)


Cordialement

Gilbert

"sylvain chipaux" a
écrit dans le

message de news:1740701c418a3$4e988210$
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain


.



Avatar
voilà ce que je fais quand j'ai une requête sur un champ
ayant '

tout d'abord je met ce code dans un modul (bien sur pompé
sur un des sites fabuleux que l'on peut trouver sur access
je ne rendrais pas a caesar ce qui est à caesar car je
sais plus lequel désolé)

Public Function Txt_Replace(txt As String) As String
Dim X As String
Dim i As Integer
Dim a As String
a = "'"
X = txt
i = 1

Do Until i > Len(X)
If Mid$(txt, i, 1) = a Then
X = Left$(txt, i - 1) & a & a & Mid$(txt,
i + 1)
i = i + 1
Else
i = i + 1
End If
Loop

Txt_Replace = X

End Function


ensuite dans ton code
'tu créés une variable temporaire

dim sTemp as string

' tu appels ta fonction Txt_Replace

sTemp = Txt_Replace( nnom )

'tu fais ta requête avec non plus nnom mais sTemp


j'espère que ce ceci t'aideras sinon désolé j'aurais
essayé ;-)

coyott le novice

-----Message d'origine-----

en mettant deux ', ça donne ça
rst.Find "[nom] like ''" & nnom & "''", , adSearchForward
et VBA rale : erreur d'execution 3001 - les arguments
sont

de type incorrect, en dehors des limites autorisées ou en
conflit les uns avec les autre.
Peut-être suggères-tu de remplacer les ' dans les champs
par '' !. autant dire que ça n'est pas gérable.

Il doit quand même bien y avoir moyen de faire une
requete

sur une table dont des champs peuvent contenir ' !. Ou
alors il y aurait un liste de char interdits ?!?.

-----Message d'origine-----
pourquoi change tu tes ' par des * ?

généralement pour une requête on double les ' donc on
remplace ' par '' histoire que vba le prenne bien pour
ce


qu'il est ... non ?

désolé si je répond à côté de la plaque je suis novice

coyott le novice
-----Message d'origine-----
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain

.

.


.






Avatar
Gilbert
Il te suffit de modifier ta requête
rst.Find "[nom] like '" & Replace(nom,"'","''") & "'", , adSearchForward

Gilbert

"sylvain" a écrit dans le message de
news:17a2901c418af$40d104c0$

je comprend les limites de mon idée mais je ne peux
quand meme pas convertir tous les champs de toutes
mes tables !. De plus le problème se reposera des
que certains autre symbole arriveront.
comme &,_| etc.

Sylvain

-----Message d'origine-----
Bonjour
Je ne sais pas ce que fait exactement ta fonction nnom,
mais si tu remplace

les ' par des *, lorsque tu recherches par exemple "[nom]
like 'a'b'", tu

vas en fait rechercher "[nom] like 'a*b'" donc tous les
noms commençant par

a et finissant par b.
Il serait préférable de remplacer les ' par '' (deux
apostrophes)


Cordialement

Gilbert

"sylvain chipaux" a
écrit dans le

message de news:1740701c418a3$4e988210$
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain


.



Avatar
sylvain
nickel !.
merci :)
-----Message d'origine-----
Il te suffit de modifier ta requête
rst.Find "[nom] like '" & Replace(nom,"'","''") & "'", ,
adSearchForward


Gilbert

"sylvain" a écrit
dans le message de

news:17a2901c418af$40d104c0$

je comprend les limites de mon idée mais je ne peux
quand meme pas convertir tous les champs de toutes
mes tables !. De plus le problème se reposera des
que certains autre symbole arriveront.
comme &,_| etc.

Sylvain

-----Message d'origine-----
Bonjour
Je ne sais pas ce que fait exactement ta fonction nnom,
mais si tu remplace

les ' par des *, lorsque tu recherches par exemple "[nom]
like 'a'b'", tu

vas en fait rechercher "[nom] like 'a*b'" donc tous les
noms commençant par

a et finissant par b.
Il serait préférable de remplacer les ' par '' (deux
apostrophes)


Cordialement

Gilbert

"sylvain chipaux" a
écrit dans le

message de news:1740701c418a3$4e988210
$


bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain


.




.




Avatar
sylvain
c'est la version "je fais tout perso" mais
ca merche impec aussi :).
Cool!

merci

-----Message d'origine-----
voilà ce que je fais quand j'ai une requête sur un champ
ayant '

tout d'abord je met ce code dans un modul (bien sur pompé
sur un des sites fabuleux que l'on peut trouver sur
access

je ne rendrais pas a caesar ce qui est à caesar car je
sais plus lequel désolé)

Public Function Txt_Replace(txt As String) As String
Dim X As String
Dim i As Integer
Dim a As String
a = "'"
X = txt
i = 1

Do Until i > Len(X)
If Mid$(txt, i, 1) = a Then
X = Left$(txt, i - 1) & a & a & Mid$(txt,
i + 1)
i = i + 1
Else
i = i + 1
End If
Loop

Txt_Replace = X

End Function


ensuite dans ton code
'tu créés une variable temporaire

dim sTemp as string

' tu appels ta fonction Txt_Replace

sTemp = Txt_Replace( nnom )

'tu fais ta requête avec non plus nnom mais sTemp


j'espère que ce ceci t'aideras sinon désolé j'aurais
essayé ;-)

coyott le novice

-----Message d'origine-----

en mettant deux ', ça donne ça
rst.Find "[nom] like ''" & nnom & "''", , adSearchForward
et VBA rale : erreur d'execution 3001 - les arguments
sont

de type incorrect, en dehors des limites autorisées ou
en


conflit les uns avec les autre.
Peut-être suggères-tu de remplacer les ' dans les champs
par '' !. autant dire que ça n'est pas gérable.

Il doit quand même bien y avoir moyen de faire une
requete

sur une table dont des champs peuvent contenir ' !. Ou
alors il y aurait un liste de char interdits ?!?.

-----Message d'origine-----
pourquoi change tu tes ' par des * ?

généralement pour une requête on double les ' donc on
remplace ' par '' histoire que vba le prenne bien pour
ce


qu'il est ... non ?

désolé si je répond à côté de la plaque je suis novice

coyott le novice
-----Message d'origine-----
bonjour,

voila le pb :
rst.Find "[nom] like '" & nnom & "'", , adSearchForward

"nnom" étant le résultat (vérifié) d'une fonction
qui remplace les ' par des *.
le résultat est toujours faux. pourquoi ?.

si quelqu'un a une idée ... ou bien aussi des conseils
sur l'utilisation des ' dans les requetes. En fait,
c'est lorsqu'un champ contient ce symbole :).

Merci d'avance,
Sylvain

.

.


.


.