Problème fonction et requete

GYo -  
 GYo -
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
Configuration: Windows XP
Firefox 3.0.1

2 réponses

  1. ismail
     
    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
    1. GYo
       
      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
      1. ismail > GYo
         
        lorsque tu selectionne 'tout' dans une zonne automatiquement il faut supprimer la condition CP= ' ' dans where
        0
  2. GYo
     
    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