OVH Cloud OVH Cloud

Requête paramétrée

4 réponses
Avatar
didier
Bonjour

J'utilise une requ=EAtre param=E9tr=E9e =E0 partir d'un=20
formulaire.
Je souhaite param=E9tr=E9 un champs suivant la valeur d'une=20
zone de liste.
Dans ma requ=EAte j'ai donc mis dans crit=E9re=20
VraiFaux([Formulaires]![monform]![mazone]=3D"AA";Est Pas=20
Null)
ou en SQL dans le where
((matable.monchamp)=3DIIf([formulaires]![monform]![ctrl]
=3D"AA",(matable.monchamp) Is Not Null)))

Mais il retourne aucun enregistrement alors que si je=20
mets directement dans mon crit=E9re=20
Est Pas Null j'ai plusieurs enregistrements
Ai-je commis une erreur quelque part

Merci de vos r=E9ponse

4 réponses

Avatar
Raymond [mvp]
Bonjour.

ton instruction n'est pas bonne:
ton vraifaux doit avoir un critère et deux valeurs de retour:
Vraifaux(critère; valeur si vrai; valeur si faux)
en général on utilise cette fonction pour créer un champ calculé ou pour
charger une valeur dans un autre champ existant.
que veux-tu faire exactement ? il te manque la valeur si condition fausseet
on ne peux pas retourner la valeur est pas null dans le résultat.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"didier" a écrit dans le message de
news: 07a201c4ec3a$245adf50$
Bonjour

J'utilise une requêtre paramétrée à partir d'un
formulaire.
Je souhaite paramétré un champs suivant la valeur d'une
zone de liste.
Dans ma requête j'ai donc mis dans critére
VraiFaux([Formulaires]![monform]![mazone]="AA";Est Pas
Null)
ou en SQL dans le where
((matable.monchamp)=IIf([formulaires]![monform]![ctrl]
="AA",(matable.monchamp) Is Not Null)))

Mais il retourne aucun enregistrement alors que si je
mets directement dans mon critére
Est Pas Null j'ai plusieurs enregistrements
Ai-je commis une erreur quelque part

Merci de vos réponse
Avatar
didier
Bonjour Raymond

En fait ma requête est le recordsource d'un état.
Dans mon formulaire j'ai ma zone de liste qui contient 3
cas
1cas tous les enregistrement
2 cas les enregistrements non nuls pour mon champs
3 cas les enregistrements nul pour ce champs
Bien sur il n'apparaisse pas comme ça pour l'utilisateur
mais c'est pour que tu comprennes leur utilité

le but dans ma requête est de faire
VraiFaux([Formulaires]![monform]![mazone]="cas2";Est Pas
Null;VraiFaux([Formulaires]![monform]![mazone]="cas1";Est
Null;?)
? : je n'ai rien à mettre car je veut qu'il me retourne
tous les enregistrements
En fait cette requête me sert de filtre à moins que je
puisse lancer le filtre depuis mon formultaire
Reports.filters=.......
filters on
mais je ne suis pas sur que cela fonctionne comme dans
les formulaires

-----Message d'origine-----
Bonjour.

ton instruction n'est pas bonne:
ton vraifaux doit avoir un critère et deux valeurs de
retour:

Vraifaux(critère; valeur si vrai; valeur si faux)
en général on utilise cette fonction pour créer un champ
calculé ou pour

charger une valeur dans un autre champ existant.
que veux-tu faire exactement ? il te manque la valeur si
condition fausseet

on ne peux pas retourner la valeur est pas null dans le
résultat.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"didier" a écrit
dans le message de

news: 07a201c4ec3a$245adf50$
Bonjour

J'utilise une requêtre paramétrée à partir d'un
formulaire.
Je souhaite paramétré un champs suivant la valeur d'une
zone de liste.
Dans ma requête j'ai donc mis dans critére
VraiFaux([Formulaires]![monform]![mazone]="AA";Est Pas
Null)
ou en SQL dans le where
((matable.monchamp)=IIf([formulaires]![monform]![ctrl]
="AA",(matable.monchamp) Is Not Null)))

Mais il retourne aucun enregistrement alors que si je
mets directement dans mon critére
Est Pas Null j'ai plusieurs enregistrements
Ai-je commis une erreur quelque part

Merci de vos réponse


.



Avatar
Raymond [mvp]
RE.

Le plus simple est de calculer ta clause where dans ton formulaire dans la
commande openreport, soit directement soit en passant par une variable.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"didier" a écrit dans le message de
news: 0e7101c4ecb4$9e57a930$
Bonjour Raymond

En fait ma requête est le recordsource d'un état.
Dans mon formulaire j'ai ma zone de liste qui contient 3
cas
1cas tous les enregistrement
2 cas les enregistrements non nuls pour mon champs
3 cas les enregistrements nul pour ce champs
Bien sur il n'apparaisse pas comme ça pour l'utilisateur
mais c'est pour que tu comprennes leur utilité

le but dans ma requête est de faire
VraiFaux([Formulaires]![monform]![mazone]="cas2";Est Pas
Null;VraiFaux([Formulaires]![monform]![mazone]="cas1";Est
Null;?)
? : je n'ai rien à mettre car je veut qu'il me retourne
tous les enregistrements
En fait cette requête me sert de filtre à moins que je
puisse lancer le filtre depuis mon formultaire
Reports.filters=.......
filters on
mais je ne suis pas sur que cela fonctionne comme dans
les formulaires

-----Message d'origine-----
Bonjour.

ton instruction n'est pas bonne:
ton vraifaux doit avoir un critère et deux valeurs de
retour:

Vraifaux(critère; valeur si vrai; valeur si faux)
en général on utilise cette fonction pour créer un champ
calculé ou pour

charger une valeur dans un autre champ existant.
que veux-tu faire exactement ? il te manque la valeur si
condition fausseet

on ne peux pas retourner la valeur est pas null dans le
résultat.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"didier" a écrit
dans le message de

news: 07a201c4ec3a$245adf50$
Bonjour

J'utilise une requêtre paramétrée à partir d'un
formulaire.
Je souhaite paramétré un champs suivant la valeur d'une
zone de liste.
Dans ma requête j'ai donc mis dans critére
VraiFaux([Formulaires]![monform]![mazone]="AA";Est Pas
Null)
ou en SQL dans le where
((matable.monchamp)=IIf([formulaires]![monform]![ctrl]
="AA",(matable.monchamp) Is Not Null)))

Mais il retourne aucun enregistrement alors que si je
mets directement dans mon critére
Est Pas Null j'ai plusieurs enregistrements
Ai-je commis une erreur quelque part

Merci de vos réponse


.



Avatar
didier
Merci tu as raison c'est beaucoup plus simple mais je n'y
ai pas pensé
j'exécute aussitot cela devait être fait rapidement et je
vais beauvoir utiliser la fonction Case au lieu de faire
de VraiFaux....
-----Message d'origine-----
RE.

Le plus simple est de calculer ta clause where dans ton
formulaire dans la

commande openreport, soit directement soit en passant
par une variable.



--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"didier" a écrit
dans le message de

news: 0e7101c4ecb4$9e57a930$
Bonjour Raymond

En fait ma requête est le recordsource d'un état.
Dans mon formulaire j'ai ma zone de liste qui contient 3
cas
1cas tous les enregistrement
2 cas les enregistrements non nuls pour mon champs
3 cas les enregistrements nul pour ce champs
Bien sur il n'apparaisse pas comme ça pour l'utilisateur
mais c'est pour que tu comprennes leur utilité

le but dans ma requête est de faire
VraiFaux([Formulaires]![monform]![mazone]="cas2";Est Pas
Null;VraiFaux([Formulaires]![monform]![mazone]="cas1";Est
Null;?)
? : je n'ai rien à mettre car je veut qu'il me retourne
tous les enregistrements
En fait cette requête me sert de filtre à moins que je
puisse lancer le filtre depuis mon formultaire
Reports.filters=.......
filters on
mais je ne suis pas sur que cela fonctionne comme dans
les formulaires

-----Message d'origine-----
Bonjour.

ton instruction n'est pas bonne:
ton vraifaux doit avoir un critère et deux valeurs de
retour:

Vraifaux(critère; valeur si vrai; valeur si faux)
en général on utilise cette fonction pour créer un champ
calculé ou pour

charger une valeur dans un autre champ existant.
que veux-tu faire exactement ? il te manque la valeur si
condition fausseet

on ne peux pas retourner la valeur est pas null dans le
résultat.


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"didier" a écrit
dans le message de

news: 07a201c4ec3a$245adf50$
Bonjour

J'utilise une requêtre paramétrée à partir d'un
formulaire.
Je souhaite paramétré un champs suivant la valeur d'une
zone de liste.
Dans ma requête j'ai donc mis dans critére
VraiFaux([Formulaires]![monform]![mazone]="AA";Est Pas
Null)
ou en SQL dans le where
((matable.monchamp)=IIf([formulaires]![monform]![ctrl]
="AA",(matable.monchamp) Is Not Null)))

Mais il retourne aucun enregistrement alors que si je
mets directement dans mon critére
Est Pas Null j'ai plusieurs enregistrements
Ai-je commis une erreur quelque part

Merci de vos réponse


.




.