IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Filtrer + résultat associé en fonction des combinaisons


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Filtrer + résultat associé en fonction des combinaisons
    Bonjour à tous,

    Je cherche à faire la requete suivante : je dispose de 4 colonnes de resultats avec des formats variables et/ou des champs non renseignés

    A B C D
    01.02.2012 ACTIF OUI
    Oui 18.12.2010 super
    15.12.2011 EN COURS genial
    BIENTOT NON bof

    Je souhaite créer une 5 colonnes dont le resultat dépend de la combinaison des 4 autres. Sous excel ca me donnerait un truc du genre : =SI(ET(A<>""; B="ACTIF");"OK";si(OU(C<>"" ET D<>"bof");"la vie est belle";"")) mais en beaucoup plus long !!

    Je sais qu on peut ecrire ces conditions direct sous Access, mais comme c est vraiment tres long, je voulais savoir s il y aurait un moyen de le faire directement sous forme de table avec des conditions. Du genre

    A B C D E
    <>"" ACTIF OK
    Nul <>"" <> bof la vie est belle
    <>"ACTIF" <>"" <> bof la vie est belle


    Ou alors une autre idée ?
    Merci âmes charitables !
    Bonne journée

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Est ce que quel qu un sait comment on fait des espaces (ou des tableaux) sur ce forum ? Je comprends rien !

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Désolé mais je ne saisi pas bien ton besoin.

    Tu peux utiliser des requêtes pour faire ce genre de caclul et tu disposes de diverses fonctions (l'équivalant de SI() est IIF()). Si ta logique est vraiment complexe, cela peut devenir rapidement illisible, une astuce consiste à utiliser une fonction VBA à la place, voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =iif(iif(isnull(A); 0; A)=1 and iif(isnull(B); 0; B)=2; iif(iif(insull(C); 0; C)=3 and iif(isnull(D); 0; D)=4;"Texte1";"Texte2");"Text3")
    peut être remplacé par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    public function CalculerCondition(prmChampA as variant, prmChampB as variant, prmChampC as variant, prmChampD as variant) as string
       'l'utilisation de type variant permet de gérer les nulls
       dim result as string
     
       dim a as long
       dim b as long
       dim c as long
       dim d as long
     
       if isnull(prmChampA) then
            a=0
          else
            a=prmChampA
       end if
     
       if isnull(prmChampB) then
            b=0
          else
            b=prmChampB
       end if
     
       if isnull(prmChampC) then
            c=0
          else
            c=prmChampC
       end if
     
       if isnull(prmChampD) then
            d=0
          else
            d=prmChampD
       end if
     
       if a=1 and b=2 then
            if c=3 and d=4 then
                result="Texte1"
              else
                result="Texte2"
            end if
         else
            result="Text3"
       end if
     
       CalculerCondition=result
    end function
    dans ta requête tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CalculerChamp(A, B, C, D)
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/08/2014, 13h38
  2. Réponses: 15
    Dernier message: 16/07/2014, 14h06
  3. Filtrer une recherche en fonction des caractères saisies
    Par FreeAccess dans le forum Contribuez
    Réponses: 0
    Dernier message: 15/07/2008, 13h59
  4. Réponses: 1
    Dernier message: 07/11/2007, 10h06
  5. remplir une table en fonction des résultats
    Par Psychomantis dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 19/10/2004, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo