Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 2021
-
26 avril 2019 à 11:02
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 2021
-
26 avril 2019 à 15:52
Bonjour !
J'ai codé un LIKE comme suit :
Global sMatch as Boolean
...
Do Until tb_koissé.EOF
sMatch = UCase(tb_koissé("nom")) Like UCase(cherche)
If sMatch = True Then
grille_search.Row = idx
grille_search.Col = 1
grille_search.Text = tb_koissé("nom")
...
End If
tb_koissé.MoveNext
Loop
Le champ cherche contient le masque *e*
La table (MS Access) contient les records suivants :
Quand j'exécute la routine, seul l'enregistrement 005 La boîte à coucou est sélectionné, pas les autres bien qu'ils contiennent aussi le e spécifié dans le masque .
Avez-vous une idée pourquoi tous les enregistrement contenant un e ne sont pas sélectionnés ?
Notpa
Messages postés125Date d'inscriptiondimanche 13 janvier 2019StatutMembreDernière intervention 8 janvier 20211 Modifié le 26 avril 2019 à 15:56
Malgré moults recherches sur le Net, je n'ai pas trouvé de solution. Alors, j'ai contourné le problème de manière suivante :
tb_koissé.MoveFirst
Do Until tb_koissé.EOF
work = UCase(tb_koissé("nom"))
cherche = UCase(cherche)
lg = InStr(1, work, cherche)
If lg <> 0 Then
grille_search.Row = idx
grille_search.Col = 1
grille_search.Text = tb_koissé("nom")
.....
End If
tb_koissé.MoveNext
Loop
Avec l'instruction InStr, je retrouve tout ce qui matche le contenu de chercher dans la table. Plus de wildcars, et ça me suffit dans ce cas. Par contre, il faut passer par UCase (ou LCase) car InStr est case sensitif.
Je passe en résolu bien que ce sujet ne le soit pas, mais j'ai un bypass qui me satisfait.