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 :

[Access 97] Affichage en fonction d'une requete


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut [Access 97] Affichage en fonction d'une requete
    Bonjour,

    je suis sous access 97, je souhaite éditer un état issu d'une requete.

    Mais, (parce que comme toujours, il y a un "MAIS") pour éclairer l'utilisateur, je dois lui afficher la date qui a permis la selection de l'enregistrement.
    Cad: je dois afficher la raison pour laquelle l'enregistrement a été sélectionné, soit la date.

    En effet, je fais un tri sur 3 date, selon les cas. Ma requete fonctionne bien.

    J'aimerais savoir comment ajouter un champs à ma requete, qui puisse contenir la valeur de la date à afficher.
    Je vous mets ma requete simplifié.

    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
    SELECT *
    FROM table1
    WHERE 
    (DateCreation >= #01/01/2006#) 
    AND ( 
    ( 
    ((Etat)="S") 
    AND ((DateDiff("d",dt_chgt_etat,Date())>=30)=-1) 
    ) 
    Or ( 
    ((Etat)="E") 
    AND (
    ((DateDiff("d",DateCreation,Date())>=90)=-1)
    OR ((DateDiff("d",dt_revue_inter,Date())>=90)=-1)
    )) 
    Or (
    ((Etat)="R")
    AND ( 
    (
    ((DateDiff("d",dt_chgt_etat,Date())>=90)=-1)
    OR ((DateDiff("d",dt_revue_inter,Date())>=90)=-1)
    ))));
    Les conditions "WHERE" fonctionnent bien. J'ai juste selon celle qui est ok, besoin de remplir un autre champs pour mémoriser laquelle est correcte.


    Merci du coup de main

    6ril

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Je ne suis pas sur d'avoir bien compris ton problème mais... si tu mets une expression composée de IIF imbriqués représentant chacun des cas ça devrait coller...

    qq chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *, IIF((((Etat)="S") AND ((DateDiff("d",dt_chgt_etat,Date())>=30)=-1),
    "Cas 1 date:" & dt_chgt_etat,
    IIF( ((Etat)="E") AND (((DateDiff("d",DateCreation,Date())>=90)=-1),
    "Cas 2 date création:" & Format(DateCreation,'dd/mm/yy'),
    ...
    Sinon tu peux aussi décomposer ta requête en n requêtes, chacune traitant un cas particulier. Puis les regrouper par une requête UNION.

    QQ chose du genre
    requete1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *,"Cas 1" as Cause ,dt_chgt_etat as Date  FROM table1 WHERE  (DateCreation >= #01/01/2006#) 
    AND (  (  ((Etat)="S")  AND ((DateDiff("d",dt_chgt_etat,Date())>=30)=-1))
    requete2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *,"Cas 2" as Cause ,DateCreation as Date FROM table1 WHERE  (DateCreation >= #01/01/2006#) 
    AND (  (  ((Etat)="E")  AND AND (((DateDiff("d",DateCreation,Date())>=90)=-1)

    ....

    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT * FROM requete1
    UNION ALL
    SELECT * FROM requete2
    UNION ALL
    SELECT * FROM requete3
    ....

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    c'est exactement ce que je cherchais. Tes lumières m'ont super éclairé

    Une autre petite chose: comment obtenir la date, mais à laquelle je dois ajouter 1 mois, dans l'expression du résultat, au niveau du

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "Cas 2 date création:" & Format(DateCreation,'dd/mm/yy'),
    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    C'est bon, j'ai fini par trouver:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (Format(DATEADD("m",1,DateCreation),'dd/mm/yyyy' ))


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Access 2000] un champ issu d'une requête ?
    Par Manopower dans le forum Langage SQL
    Réponses: 10
    Dernier message: 21/09/2006, 20h31
  2. [VBA Access]Pb affichage de résultat d'une requête
    Par BouGeTonQ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/06/2006, 19h49
  3. [MySQL] affichage du résultat d'une requete dans une page
    Par blackbird1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/03/2006, 15h07
  4. Etat en fonction d'une requete dans un formulaire
    Par Cablan dans le forum Access
    Réponses: 5
    Dernier message: 16/11/2005, 16h25
  5. Réponses: 2
    Dernier message: 29/11/2004, 13h13

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