Problème fonction et requete

Fermé
GYo - 26 nov. 2008 à 10:42
 GYo - 26 nov. 2008 à 12:46
Bonjour tout le monde,


Voila j’ai une petite question. J’ai 4 liste déroulantes I, A, P et E qui contiennent tous beaucoup de champs dont un champ incluant tout les champs. Chaque liste à donc deux états (tout ou un champ en particulier). Le problème c’est que pour chaque état je dois avoir une requête différente dans ma base de donnée. Ce qui fait 16 combinaisons différentes possible (table de vérité à 4 entrée (IAPE) soit 2^4 combinaisons).J’étais partis pour faire une fonction avec des if/else mais s’il faut que je code 16 if ça sera pas très pratique J’en arrive à ma question : comment faire pour limiter le nombre de if ? Y a-t-il une autre solution, plus simple ?

Annexe : J’était parti sur ça :

If (I=tout et A= Champ Particulier et P= CP et E=CP)
{
Requete
}
Else
If (I=CP et A=tout et P= CP et E=CP)
{
Requete
}

Ect pour les 16 combinaisons possibles

merci

2 réponses

Il faut résonner de cette manière :

Initialiser la Requete par RSQL="SELECT ....champs From Tables Where "

et un varaible :TestAND =0

if I <> "tout"
if testAND=0
RSQL=RSQl & " I =CP1"
Else
RSQL=RSQl & "and I = " CP1
End if
if A <> "tout"
if testAND=0
RSQL=RSQl & " I =CP2"
Else
RSQL=RSQl & "and I = " CP2
End if
if P <> "tout"
if testAND=0
RSQL=RSQl & " I =CP3"
Else
RSQL=RSQl & "and I = " CP3
End if

if E <> "tout"
if testAND=0
RSQL=RSQl & " I =CP4"
Else
RSQL=RSQl & "and I = " CP4
End if

réponder moi ; est ce que ca ce que tu cherche ?
0
merci d'avoir répondu,

Je ne crois pas que ça correspond à ce que je recherche. Dans un premier temps, il faut savoir que dans chaque liste déroulante j'ai pas moins d'une 30ène de champ, et avec ta méthode on serai obligé de tester les 30 champs. Ce qui serai très long. Autre chose, une fois les champ des listes sélectionner je soumet à l'aide d'un bouton ce qui me permet d'inclure les différentes valeur a mes requêtes. Lorsque je sélectionne le champ "tout" j'enlève le parametre de la requete.
0
ismail > GYo
26 nov. 2008 à 12:03
lorsque tu selectionne 'tout' dans une zonne automatiquement il faut supprimer la condition CP= ' ' dans where
0
oui voila, ce qui ramène à dire qu'on a 2 états:

- tout où on supprime la condition Champ Particulier
- CP on met WHERE CP=''

mais comme j'ai plusieurs liste déroulante, sa donne plusieurs combinaisons possible (16):

cas1(I=tout A=tout P=CP E=tout)

ect....

Le problème n'est pas la requête mais la longueur du code si on utilise des if, et justement je cherche un moyen plus simple ou moins complexe que sa:


If (I=tout et A= Champ Particulier et P= CP et E=CP)
{
Requete sans de condition sur la variable I
}
Else
If (I=CP et A=tout et P= CP et E=CP)
{
Requete sans de condition sur la variable A
}
}

Ect pour les 16 combinaisons possibles
0