La fonction DoCmd.FindRecord permet de faire une recherche dans une table
Celle ci fonctionne très bien avec une valeur saisie en dure ou bien avec un inputbox, mais avec une zone de recherche c’est un peu plus compliqué, mais pas tant que ça
Si vous saisissez un texte dans la zone, au moment de la recherche avec l’option acSearchAll(recherche dans tous les champs du formulaire) et bien ACCESS ne trouve rien car la valeur recherchée se trouve déjà dans un champ du formulaire (celui de la zone de texte)
On se mord la queue ???
Solution:
Avant de lancer la recherche
=> Sauvegardez le texte dans une variable de type String
=> Vider le champ zone de texte
Après avoir exécuté votre recherche
=> remettre le texte recherché dans la zone de texte
1 2 3 4 5 6 7 8 9 10 11 12 |
Dim sRecherche As String sRecherche = txt_Recherche txt_Recherche = "" 'on vide le champ pour que la recherche ne se fasse pas avec celui ci sinon ça ne marche pas DoCmd.FindRecord _ FindWhat:=sRecherche, _ Match:=acAnywhere, _ MatchCase:=False, _ Search:=acSearchAll, _ SearchAsFormatted:=True, _ OnlyCurrentField:=acAll, _ FindFirst:=False txt_Recherche = sRecherche 'on remet la valeur au champ de recherche |