Bonjour,
Après beaucoup de recherche, je n'ai toujours pas trouver la réponse à mon problème ce pourquoi je me retourne vers votre aide .
J'ai créer un formulaire de recherche multicritère "F_CONSULT STOCK" (4 critères de recherche), l'idée étant de pouvoir filtrer les enregistrements en fonction des besoins, les critères ne sont donc pas obligatoire.
J'ai donc paramétré ma requête "R_STOCK_CONSULT" pour mes trois listes déroulantes sans difficultés :
exemple : CommeMon soucis arrive donc, il s'agit du filtre date (Rechdate). En effet, certains de mes enregistrements n'ont pas de date de saisie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part VraiFaux([Formulaires]![F_CONSULT STOCK]![Rechnumnat].[ListIndex]=-1;"*" & [Formulaires]![F_CONSULT STOCK]![Rechnumnat] & "*";[Formulaires]![F_CONSULT STOCK]![Rechnumnat])
Ce que je souhaite :
- Lorsque mon critère Rechdate est renseigné = filtre en fonction de la valeur
- Lorsque mon critère Rechdate n'est pas renseigné = aucun filtre sur la date (soit mes champs vides et non vides)
Le seul paramétrage que j'ai trouvé se rapprochant le plus de ce que je souhaite obtenir est :
mais ce dernier ne m'affiche pas les enregistrements ayant une date de congélation vide lorsque Rechdate n'est pas renseigné
Code : Sélectionner tout - Visualiser dans une fenêtre à part VraiFaux(EstNull([Formulaires]![F_CONSULT STOCK]![Rechdate]);[T_STOCK]![DATE_CONGELATION];[Formulaires]![F_CONSULT STOCK]![Rechdate])
Si dessous ma requête en SQL si besoin :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT T_STOCK.N°, T_STOCK.N°_NAT_BELIER, T_STOCK.N°_BELIER, T_STOCK.RACE, T_STOCK.N°_OS, T_STOCK.DATE_CONGELATION, T_STOCK.TYPE_ECHANTILLON, T_STOCK.N°_EJACULAT, T_STOCK.CANISTER, T_STOCK.HAUTEUR, T_STOCK.NB_PAILLETTES, T_STOCK.COULEUR_PAILLETTE, T_STOCK.COULEUR_VISOTUBE, T_STOCK.[COULEUR JONC], T_STOCK.DATE_ARRIVEE FROM T_STOCK WHERE (((T_STOCK.N°_NAT_BELIER) Like IIf([Formulaires]![F_CONSULT STOCK]![Rechnumnat].[ListIndex]=-1,"*" & [Formulaires]![F_CONSULT STOCK]![Rechnumnat] & "*",[Formulaires]![F_CONSULT STOCK]![Rechnumnat])) AND ((T_STOCK.N°_BELIER) Like IIf([Formulaires]![F_CONSULT STOCK]![RechnumW].[ListIndex]=-1,"*" & [Formulaires]![F_CONSULT STOCK]![RechnumW] & "*",[Formulaires]![F_CONSULT STOCK]![RechnumW])) AND ((T_STOCK.RACE) Like IIf([Formulaires]![F_CONSULT STOCK]![RechTG].[ListIndex]=-1,"*" & [Formulaires]![F_CONSULT STOCK]![RechTG] & "*",[Formulaires]![F_CONSULT STOCK]![RechTG])) AND ((T_STOCK.DATE_CONGELATION)=IIf(IsNull([Formulaires]![F_CONSULT STOCK]![Rechdate]),[T_STOCK]![DATE_CONGELATION],[Formulaires]![F_CONSULT STOCK]![Rechdate])));
Je vous remercie d'avance pour votre aide,
Dod
Partager