OVH Cloud OVH Cloud

[WD8] Requête paramétrée - Valeur par défaut

6 réponses
Avatar
Eric
Dans larequête paramétrée, ci-dessous,
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite,sNoLoc)

sInvite (Nom de l'invité)
sNoLoc (numéro de localité) : Contenu vient de la table Localités

le filtre fonctionne 100% du moment où tous les champs sont remplis. C'est
ok.

Il fonctionne également si la valeur du champ sInvité est vide ("").
Dans ce cas, tous les invités filtrés pour la localité (sNoLoc) sont
affichés.

Mon Problème
Par contre si je veux tous les invités SANS FILTRER LA LOCALITE, LA LISTE
EST VIDE !!!!
Je ne sais pas comment annuler un paramètre numérique du filtre.
J'ai essayé de donner les valeurs "", "*" au champ sNoLoc. Mais rien n'y
fait !!!

Je donne ma langue au chat.

Merci de votre aide
Eric

6 réponses

Avatar
David B
pourquoi ne pas avoir 2 requetes donc l'une qui ne filtre que sur les invités et l'autre sur invités/localités et lancer l'une
ou l'autre en fonction de sInvite ? (si vide=requete1 lancée sinon requete2 lancée)

"Eric" a écrit dans le message de news: 416107d5$
Dans larequête paramétrée, ci-dessous,
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite,sNoLoc)

sInvite (Nom de l'invité)
sNoLoc (numéro de localité) : Contenu vient de la table Localités

le filtre fonctionne 100% du moment où tous les champs sont remplis. C'est
ok.

Il fonctionne également si la valeur du champ sInvité est vide ("").
Dans ce cas, tous les invités filtrés pour la localité (sNoLoc) sont
affichés.

Mon Problème
Par contre si je veux tous les invités SANS FILTRER LA LOCALITE, LA LISTE
EST VIDE !!!!
Je ne sais pas comment annuler un paramètre numérique du filtre.
J'ai essayé de donner les valeurs "", "*" au champ sNoLoc. Mais rien n'y
fait !!!

Je donne ma langue au chat.

Merci de votre aide
Eric




Avatar
Gilles Balp
valeur NULL pour ne pas prendre en compte un paramètre

--
Gilles Balp
http://cerbermail.com/?Swku8aAzW7
(clic sur ce lien pour me contacter en privé)
"Eric" a écrit dans le message de
news:416107d5$
Dans larequête paramétrée, ci-dessous,
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite,sNoLoc)

sInvite (Nom de l'invité)
sNoLoc (numéro de localité) : Contenu vient de la table Localités

le filtre fonctionne 100% du moment où tous les champs sont remplis. C'est
ok.

Il fonctionne également si la valeur du champ sInvité est vide ("").
Dans ce cas, tous les invités filtrés pour la localité (sNoLoc) sont
affichés.

Mon Problème
Par contre si je veux tous les invités SANS FILTRER LA LOCALITE, LA LISTE
EST VIDE !!!!
Je ne sais pas comment annuler un paramètre numérique du filtre.
J'ai essayé de donner les valeurs "", "*" au champ sNoLoc. Mais rien n'y
fait !!!

Je donne ma langue au chat.

Merci de votre aide
Eric




Avatar
Eric
Salut Gilles,

Le null, je l'ai déjà essayé
Il fonctionne pour les champs caractères et uniquement avec la fonction
"Commence par"

Merci de ta réponse
Eric

"Gilles Balp" a écrit dans le message de news:
cjr2hf$qvf$
valeur NULL pour ne pas prendre en compte un paramètre

--
Gilles Balp
http://cerbermail.com/?Swku8aAzW7
(clic sur ce lien pour me contacter en privé)
"Eric" a écrit dans le message de
news:416107d5$
Dans larequête paramétrée, ci-dessous,
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite,sNoLoc)

sInvite (Nom de l'invité)
sNoLoc (numéro de localité) : Contenu vient de la table Localités

le filtre fonctionne 100% du moment où tous les champs sont remplis.
C'est
ok.

Il fonctionne également si la valeur du champ sInvité est vide ("").
Dans ce cas, tous les invités filtrés pour la localité (sNoLoc) sont
affichés.

Mon Problème
Par contre si je veux tous les invités SANS FILTRER LA LOCALITE, LA LISTE
EST VIDE !!!!
Je ne sais pas comment annuler un paramètre numérique du filtre.
J'ai essayé de donner les valeurs "", "*" au champ sNoLoc. Mais rien n'y
fait !!!

Je donne ma langue au chat.

Merci de votre aide
Eric








Avatar
Eric
Je crois que c'est le principe de Windev.
Il n'ai pas possible de faire des filtres génériques dans lesquels tu
utilises uniquement les champs nécessaires.
Les autres champs, tu les laisses vides = désactivés.

"David B" a écrit dans le message de news:
41610ca1$0$9513$
pourquoi ne pas avoir 2 requetes donc l'une qui ne filtre que sur les
invités et l'autre sur invités/localités et lancer l'une
ou l'autre en fonction de sInvite ? (si vide=requete1 lancée sinon
requete2 lancée)

"Eric" a écrit dans le message de news:
416107d5$
Dans larequête paramétrée, ci-dessous,
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite,sNoLoc)

sInvite (Nom de l'invité)
sNoLoc (numéro de localité) : Contenu vient de la table Localités

le filtre fonctionne 100% du moment où tous les champs sont remplis.
C'est
ok.

Il fonctionne également si la valeur du champ sInvité est vide ("").
Dans ce cas, tous les invités filtrés pour la localité (sNoLoc) sont
affichés.

Mon Problème
Par contre si je veux tous les invités SANS FILTRER LA LOCALITE, LA LISTE
EST VIDE !!!!
Je ne sais pas comment annuler un paramètre numérique du filtre.
J'ai essayé de donner les valeurs "", "*" au champ sNoLoc. Mais rien n'y
fait !!!

Je donne ma langue au chat.

Merci de votre aide
Eric








Avatar
Juliane
S'il s'agit d'une requête construite avec l'éditeur de requête à base de 2
fichiers avec jointure externe, il faut peut-être préciser, dans l'édition
des jointures : "Inclure également une ligne par Invité qui n'a pas de
Localite".

Ou bien, si la valeur "sNoLoc" est vide, ne pas mettre ce paramètre du tout
dans la requete :
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite)
comme c'est le dernier paramètre, il est optionnel et ne devrait pas être
pris en compte.



"Eric" a écrit dans le message de
news:416107d5$
Dans larequête paramétrée, ci-dessous,
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite,sNoLoc)

sInvite (Nom de l'invité)
sNoLoc (numéro de localité) : Contenu vient de la table Localités

le filtre fonctionne 100% du moment où tous les champs sont remplis. C'est
ok.

Il fonctionne également si la valeur du champ sInvité est vide ("").
Dans ce cas, tous les invités filtrés pour la localité (sNoLoc) sont
affichés.

Mon Problème
Par contre si je veux tous les invités SANS FILTRER LA LOCALITE, LA LISTE
EST VIDE !!!!
Je ne sais pas comment annuler un paramètre numérique du filtre.
J'ai essayé de donner les valeurs "", "*" au champ sNoLoc. Mais rien n'y
fait !!!

Je donne ma langue au chat.

Merci de votre aide
Eric




Avatar
Antoine
Non, tu fait erreur, cela est possible de ne pas prendre en compte ecrtaine
condition de ta requete.
Le principe c'est d'utiliser une variable de type variant en parametre est
de l'affecter à NULL.

sParam1 est un variant = "MaValeur"
sParam2 est un variant = NULL

HExécuteRequete(MaRequete, hrequetedefault, sParam1, sParam2)

Dans cet exemple, la condition 2 est ignorée

Antoine

Eric wrote:
Je crois que c'est le principe de Windev.




Il n'ai pas possible de faire des filtres génériques dans lesquels tu
utilises uniquement les champs nécessaires.
Les autres champs, tu les laisses vides = désactivés.

"David B" a écrit dans le message de news:
41610ca1$0$9513$
pourquoi ne pas avoir 2 requetes donc l'une qui ne filtre que sur les
invités et l'autre sur invités/localités et lancer l'une
ou l'autre en fonction de sInvite ? (si vide=requete1 lancée sinon
requete2 lancée)

"Eric" a écrit dans le message de news:
416107d5$
Dans larequête paramétrée, ci-dessous,
HExécuteRequête(InvitesFiltre_REQ,hRequêteDéfaut,sInvite,sNoLoc)

sInvite (Nom de l'invité)
sNoLoc (numéro de localité) : Contenu vient de la table Localités

le filtre fonctionne 100% du moment où tous les champs sont remplis.
C'est
ok.

Il fonctionne également si la valeur du champ sInvité est vide ("").
Dans ce cas, tous les invités filtrés pour la localité (sNoLoc) sont
affichés.

Mon Problème
Par contre si je veux tous les invités SANS FILTRER LA LOCALITE, LA
LISTE EST VIDE !!!!
Je ne sais pas comment annuler un paramètre numérique du filtre.
J'ai essayé de donner les valeurs "", "*" au champ sNoLoc. Mais
rien n'y fait !!!

Je donne ma langue au chat.

Merci de votre aide
Eric