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

Access Discussion :

Statut (Feux Tricolore) d'un Projet piloté par le statut de ses sous-éléments (Actions)


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Statut (Feux Tricolore) d'un Projet piloté par le statut de ses sous-éléments (Actions)
    Bonjour,

    pouvez-vous me mettre sur la voie pour résoudre le problème suivant sous Access 2010?

    Je cherche à faire un suivit de projet et un tableau de bord (dans un formulaire) résumant les statut d'avancement.
    1 Groupe -est responsable- des plusieurs Projets
    1 Projet -contient- des Actions
    1 Action -a- un statut (Vert, Orange, Rouge)

    Je souhaite visualiser la liste des projets avec en face un feux tricolore qui sera
    - rouge si UNE des actions est rouge,
    - orange si une aucune action est rouge et UNE AU MOINS action est orange,
    - vert si AUCUNE action rouge et AUCUNE action orange (=TOUTE actions vertes)

    De la même façon je souhaite visualiser les Stauts généraux des groupes

    En d'autre termes, je souhaite faire un bilan mais je n'arrive pas à faire un cumule (est-ce le bon terme ?).

    Merci de votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonsoir,

    La fonction suivante, en valeur d'un champ basé sur la table Projet devrait te donner le résultat :
    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
    Public Function MAJStatut(valProjet As Integer) As String
    Dim NbRouge As Integer, NbOrange As Integer, NbVert As Integer
    'Calculer le nombre de feux pour chaque projet
    NbRouge = Nz(DCount("[IdAction]", "[T_Action]", "[Statut]='rouge' AND [IdProjet_FK]=" & valProjet), 0)
    NbOrange = Nz(DCount("[IdAction]", "[T_Action]", "[Statut]='orange' AND [IdProjet_FK]=" & valProjet), 0)
    NbVert = Nz(DCount("[IdAction]", "[T_Action]", "[Statut]='vert' AND [IdProjet_FK]=" & valProjet), 0)
    Debug.Print valProjet, NbRouge, NbOrange, NbVert
    If NbRouge > 0 Then 'Tester si il y a une action "Rouge" -> StatutProjet = Rouge
        MAJStatut = "Rouge"
    Else
        If NbOrange > 0 Then 'Tester si il y a une action "Orange" -> StatutProjet = Orange
            MAJStatut = "Orange"
        Else
            MAJStatut = "Vert" 'Sinon StatutProjet = Vert
        End If
     
    End If
    End Function
    avec le code de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT T_Projet.IdProjet, T_Projet.NomProjet, MAJStatut([IdProjet]) AS StatutProjet
    FROM T_Projet;
    Cordialement,

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci madefemere pour votre réponse rapide, concise et bine ciblée. Je n'aurais pas pensé à aborder ce problème en créant une fonction. Ca me semble une bonne solution.

    J'ai lu et essayé de comprendre chaque ligne, en gros on compte le nombre de Status Rouge, Orange, Vert dans chaque projet et on attribue un Statut global selon la situation (avec If...else). Je vais essayer ça dans un ou 2 jours mais ça va marcher, j'en suis sûr.

    Je suis assez familier du VBA mais dans Excel. Je n'ai que quelques bases en Access.
    En lisant votre réponse et d'autres discussion je vois beaucoup la fonction NZ(), je crois comprendre qu'elle est très utiles dans les analyse de Bdd.

    Pour finir, il y a quand même un point que j'aimerai confirmer dans: Nz(DCount("[IdAction]", "[T_Action]", "[Statut]='rouge' AND [IdProjet_FK]=" & valProjet), 0)

    Est-ce que [IdProjet_FK] est un nom de champ choisi arbitrairement ou bien le suffixe _FK a un sens particulier ?

    Encore merci

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Le suffixe _FK permet d'identifier le champ comme étant une clé étrangère dans une table. Ici, IdProjet_FK est le champ de la table T_Action qui est lié au champ IdProjet de la table T_Projet

Discussions similaires

  1. projet feux tricolores
    Par bajoi11 dans le forum C
    Réponses: 3
    Dernier message: 22/03/2012, 15h38
  2. Réponses: 2
    Dernier message: 09/07/2011, 19h05
  3. [C#]Propriétés Excel pilotées par C#
    Par Mictou dans le forum C#
    Réponses: 7
    Dernier message: 22/07/2008, 12h29
  4. Réponses: 1
    Dernier message: 23/08/2005, 14h07

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