ACCESS Pb requête recherche multicritère : Comme "*"& ; Like "*"&

Bonjour à tous et toutes,

Je bute sur un problème pour lequel je ne trouve actuellement aucune solution nul part...

J'ai un formulaire de recherche dans lequel j'ai 4 champs devant me permettre d'affiner la recherche, et une zone de liste qui doit afficher ces résultats, de préférence dynamiquement, mais s'il faut passer par un bouton au pire qu'importe.

Les 4 champs sont composés de 2 zones de listes déroulantes, et 2 champs textes.
Ma requête liée prenant en compte ces critères, qui peuvent être remplis ou vides est bien reliée à la zone de liste et s'articule ainsi :
Pour plus de flexibilité (nécessaire), chaque critère de ma requête dans ACCESS se compose comme suit
Comme "*" & [Formulaires]![F_RechercheEquipement]![Champ_CODEPLANMASSE] & "*"

Cela se traduit en SQL ainsi :

SELECT T_EQUIPEMENTS_ACCESS.CODEPLANMASSE, T_EQUIPEMENTS_ACCESS.NOM, T_EQUIPEMENTS_ACCESS.LIGNE, T_EQUIPEMENTS_ACCESS.BATIMENTSRECOLTES, T_EQUIPEMENTS_ACCESS.DESAFFECTEE, *
FROM T_EQUIPEMENTS_ACCESS
WHERE (((T_EQUIPEMENTS_ACCESS.CODEPLANMASSE) Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_CODEPLANMASSE] & "*") AND ((T_EQUIPEMENTS_ACCESS.NOM) Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_NOM] & "*") AND ((T_EQUIPEMENTS_ACCESS.LIGNE) Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_LIGNE N°] & "*") AND ((T_EQUIPEMENTS_ACCESS.TYPE) Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_TypeEquipement] & "*"));

Déjà, sans aucun critère renseigné un filtre dans la zone de liste est déjà fait, ce qui me parait illogique et commence mal... Mais j'ai beau me gratter le tête je ne vois pas le soucis que ça peut causer à ACCESS.

Je suis ouvert à une aide soit en passant par les fonctions ACCESS soit en corrigeant directement la requête SQL qu'importe... Mais je bloque complètement.

Un grand merci par avance à tout ceux qui pourront m'aider là dessus !

Cordialement,

Petit Up, une âme charitable aurait elle une solution..?
Avancée qui peut mettre sur la voie :
Si je met manuellement les * DANS le champ, ça fonctionne. Le problème se trouverai donc dans la partie en gras soulignée, qui ne rempli pas son rôle d'ajouter au champ le caractère *
Comme "*" & [Formulaires]![F_RechercheEquipement]![Champ_CODEPLANMASSE] & "*"

Pour les puristes du SQL, ACCESS fait n'importe quoi dans sa syntaxe, le pavé plus haut peut se résumer ainsi :

SELECT CODEPLANMASSE, NOM, LIGNE, BATIMENTSRECOLTES, DESAFFECTEE
FROM T_EQUIPEMENTS_ACCESS
WHERE 
CODEPLANMASSE Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_CODEPLANMASSE] & "*" AND
NOM Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_NOM] & "*" AND
LIGNE Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_LIGNE N°] & "*" AND
TYPE Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_TypeEquipement] & "*";

C'est déjà plus clair pour réfléchir, mais si en l'état cela ne fonctionne toujours pas.

Aller, le temps que j'écrive tout ça pour rien, ma réflexion a porté ses fruits.

Le truc : si quand j'inscris moi même le caractère * directement dans le champ de recherche et que cela fonctionne, alors que dans le code SQL il est déjà sensé y être Like "*" & [Formulaires]![F_RechercheEquipement]![Champ_CODEPLANMASSE] & "*"

Alors quitte à ce que mon code renvoi 2 caractères *, pourquoi ne pas rajouter le 2nd directement dans le code aussi, ainsi Like "*" & "*" & [Formulaires]![F_RechercheEquipement]![Champ_CODEPLANMASSE] & "*" & "*"

Ben vous savez quoi... Ca marche... Couillon d'ACCESS...

Bravo moi

J'espère que cela pourra servir à une autre personne car google ne m'a trouvé aucun autre post avec ce problème, ma foi cocasse.

Salut R3n0W

Je ne veux pas remuer le couteau dans la plaie, mais, et tout simplement

SELECT CODEPLANMASSE, NOM, LIGNE, BATIMENTSRECOLTES, DESAFFECTEE
FROM T_EQUIPEMENTS_ACCESS
WHERE 
CODEPLANMASSE Like [Formulaires]![F_RechercheEquipement]![Champ_CODEPLANMASSE] AND 
NOM Like [Formulaires]![F_RechercheEquipement]![Champ_NOM] AND 
LIGNE Like  [Formulaires]![F_RechercheEquipement]![Champ_LIGNE N°] AND 
TYPE Like [Formulaires]![F_RechercheEquipement]![Champ_TypeEquipement];

L'opérateur "Like" indiquant déjà à Access qu'il faut que le champ contienne ce qui suit...

A+

Bonjour,

Avez-vous testé en remplaçant * par % et ? par _ qui sont les opérateurs standards en SQL

Bonjour Jean Paul, oui j'avais essayé ça aussi mais sans succès.
Je ne me l'explique pas, mais pour une raison inconnue seule la façon que j'ai trouvé fonctionne bien.
Tout les tuto existants disent le contraire, pourtant..
Mais tant que j'arrive à mon but, qu'importe la forme que ça prend

Rechercher des sujets similaires à "access requete recherche multicritere comme like"