.find avec des "'"

Le
sylvain chipaux
bonjour,

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

"nnom" tant le rsultat (vrifi) d'une fonction
qui remplace les ' par des *.
le rsultat est toujours faux. pourquoi ?.

si quelqu'un a une ide 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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le #5010701
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

.



Gilbert
Le #5010641
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" 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
sylvain
Le #5010631
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

.

.





sylvain
Le #5010601
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" é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


.



Le #5010561
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

.

.


.






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

Gilbert

"sylvain" 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" é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


.



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


Gilbert

"sylvain" 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" é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


.




.




sylvain
Le #5010531
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

.

.


.


.







Publicité
Poster une réponse
Anonyme