Access - Formulaire de recherche avec caractères génériques

Résolu/Fermé
Asperge09 Messages postés 3 Date d'inscription lundi 27 juin 2022 Statut Membre Dernière intervention 28 juin 2022 - 27 juin 2022 à 15:02
yg_be Messages postés 22758 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 mai 2024 - 28 juin 2022 à 20:13
Bonjour,
Je veux créer un formulaire de recherche qui me permettrait de retrouver un enregistrement qui contient un la chaine de caractères que j'ai tapé dans une zone de texte. Pour cela j'ai essayer d'afficher une requête sur le formulaire, je choisis comme critère de cette requête *[Forms]![Recherche]![Zone_de_texte1] *. Vous l'aurez bien compris ça ne fonctionne pas j'ai aussi essayé:
"*"&[Forms]![Recherche]![Zone_de_texte1] &"*" ou *'[Forms]![Recherche]![Zone_de_texte1]'*

A noter que j'ai essayé avec un critère sans caractère générique ([Forms]![Recherche]![Zone_de_texte1]), ça fonctionne très bien. J'ai aussi essayé de mettre en critère directement une valeur test par exemple 2 (*2*) ,et tout fonctionnait bien.

Je ne m'y connais pas vraiment en SQL, si quelqu'un connaitrait la bonne syntaxe à employer ou un moyen d'appliquer des caractères génériques dans une liste, je vous remercierait grandement
A voir également:

3 réponses

yg_be Messages postés 22758 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 mai 2024 1 480
27 juin 2022 à 18:57
bonjour,
peux-tu partager les sources SQL de tes différents essais?
0
Asperge09 Messages postés 3 Date d'inscription lundi 27 juin 2022 Statut Membre Dernière intervention 28 juin 2022
28 juin 2022 à 11:33
Requête 1: Dans un premier temps j'ai testé que la requête renvoie bien les enregistrement voulus lorsque je tape la référence complète. Toout fonctionne bien
SELECT Mouvements.IDMouv, Mouvements.Type, Mouvements.[Affaire / Bdc], Mouvements.Date
FROM Mouvements
WHERE (((Mouvements.[Affaire / Bdc])=[Forms]![Recherche affaire test 1]![Zone de texe choix affaire]));


Requête 2: Ensuite je teste avec "21" comme exemple. La requête me renvoie bien la liste de toutes les affaires qui comportent "21".
SELECT Mouvements.IDMouv, Mouvements.Type, Mouvements.[Affaire / Bdc], Mouvements.Date
FROM Mouvements
WHERE (((Mouvements.[Affaire / Bdc]) Like "*21*"));


Requête 3: Je veux faire un mix des deux, idéalement si je tape 21 dans la zone de texte, cette requête devrait me renvoyer les mêmes enregistrement que la requête 2. J'ai testé avec plusieurs syntaxes mais le résultat est toujours le même: la requête ne me renvoie aucun enregistrement tant que je ne met pas la référence complète (exactement comme la requête 1), les caractères génériques ne fonctionnent pas.
SELECT Mouvements.IDMouv, Mouvements.Type, Mouvements.[Affaire / Bdc], Mouvements.Date
FROM Affaire INNER JOIN Mouvements ON Affaire.Affaire = Mouvements.[Affaire / Bdc]
WHERE (((Mouvements.[Affaire / Bdc]) Like "*[Formulaires]![Recherche affaire test 3]![Zone texte choix affaire]*" Or (Mouvements.[Affaire / Bdc])="*" & [Formulaires]![Recherche affaire test 3]![Zone texte choix affaire] & "*" Or (Mouvements.[Affaire / Bdc]) Like "*'[Formulaires]![Recherche affaire test 3]![Zone texte choix affaire]'*"));
0
yg_be Messages postés 22758 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 mai 2024 1 480
28 juin 2022 à 13:18
Attention, il me semble qu'il y a des erreurs de noms dans les requêtes partagées.
moi j'essaierais:
SELECT Mouvements.IDMouv, Mouvements.Type, Mouvements.[Affaire / Bdc], Mouvements.Date
FROM Mouvements
WHERE (((Mouvements.[Affaire / Bdc]) Like "*" & "21" & "*"));

et, si cela fonctionne comme la requête 2, j'essaierais ensuite:
SELECT Mouvements.IDMouv, Mouvements.Type, Mouvements.[Affaire / Bdc], Mouvements.Date
FROM Mouvements
WHERE (((Mouvements.[Affaire / Bdc]) Like "*" & 
[Forms]![Recherche affaire test 1]![Zone de texe choix affaire]
 & "*"));
0
yg_be Messages postés 22758 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 mai 2024 1 480 > yg_be Messages postés 22758 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 mai 2024
28 juin 2022 à 13:37
j'ai testé ceci, qui fonctionne bien:
SELECT  *
FROM tstlike
WHERE tstlike.[txt] like "*" & [Forms]![flike]![txtinform] & "*";
0
Asperge09 Messages postés 3 Date d'inscription lundi 27 juin 2022 Statut Membre Dernière intervention 28 juin 2022
28 juin 2022 à 14:27
Merci pour ton aide @yg_be.
J'ai adapté ma solution à tes conseils. Cela fonctionne pour moi.

Merci beaucoup ;)
0
yg_be Messages postés 22758 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 mai 2024 1 480
28 juin 2022 à 20:13
Peux-tu alors marquer la discussion comme résolue?
1