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

IHM Discussion :

Etat à partir d'une requête d'analyse croisée


Sujet :

IHM

  1. #1
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut Etat à partir d'une requête d'analyse croisée
    Bonjour.

    Je bute sur un état à partir d'une requête d'analyse croisée. Dans l'état, j'ai établi (dans le détail) 12 valeurs correspondant aux 12 mois. Mais naturellement, ça bloque lorsque au moins un mois n'est pas encore effectif.

    J'avais essayé ceci :

    Mais ça affiche une erreur (je connais très mal NZ).

    Exemple pour Janvier
    Nom : Janvier
    Source contrôle : Janvier


    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    Salut,

    Le plus simple ici est de creer une table recipient avec deja les 12 mois, tu seras sur d'avoir tout lors de ton alimentation.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut
    J'y avais pensé mais pas possible dans ma structure.

    tblSalaries
    SaID
    SaNom
    Etc...

    tblReleves
    ReID
    ReAnnee
    ReMois

    tblReleves_Sub
    ReID
    SaID
    ReHeures

    Et les formulaires correspondants...

    Donc en pré-remplissant les 12 mois dans tblReleves, les valeurs de tblReleves_Sub n'étant pas elles pré-remplies, les mois ne s'afficheront pas dans la requête.

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour,
    comme l'a suggéré Jean Philippe : c'est une nouvelle table (dans l'exemple ci-dessous T_tmp_002, temporaire ou non) que tu va créer dans laquelle tu va saisir tes 12 mois .
    A la fin de ta requête TCD il te faut ajouter "PIVOT champ1 IN ..."
    comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     strSql = "TRANSFORM Count(M_id) AS Decompte" _
                   & " SELECT cGroupe_stats" _
                   & " FROM T_tmp_001" _
                   & " WHERE IN_statut ='A_TRAITER'" _
                   & " GROUP BY cGroupe_stats" _
                   & " PIVOT IN_mois IN (SELECT DISTINCT IN_mois FROM T_tmp_002 ORDER BY IN_mois)"
    plus simplement si ça te suffit, tu peux écrire à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      & " PIVOT IN_mois IN ('01', '02', ... , '11', '12')
    Crdlt
    "Always look at the bright side of life." Monty Python.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 97
    Points
    97
    Par défaut Etat à partir d'une requête d'analyse croisée
    Bonjour,

    Il faut dans votre Requête Analyse Croisée mettre tous les mois dans le "pivot"

    exemple :

    .......
    pivot VotreChamp in ("Janvier","Février",etc)

    Bien sur il faut que les noms dans le IN (Janvier Février etc) correspondent aux valeurs présentes dans "VotreChamp"

    Cordialement
    Henri

  6. #6
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut
    Ma requête, faite avec QBE est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TRANSFORM Sum(reqHeuresTravail.ReHeures) AS ReHeuresTotal
    SELECT reqHeuresTravail.ReAnnee, [SaNom] & " " & [SaPrenom] AS SaSalarie,
    Sum(reqHeuresTravail.ReHeures) AS ReHeures
    FROM reqHeuresTravail
    GROUP BY reqHeuresTravail.ReAnnee, [SaNom] & " " & [SaPrenom]
    ORDER BY reqHeuresTravail.ReAnnee, [SaNom] & " " & [SaPrenom]
    PIVOT reqHeuresTravail.ReMois;
    La nouvelle table :

    tblMois
    MoID
    MoLabel

    12 lignes = 12 mois

    Mais pour le pivot ça ne doit pas être bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PIVOT tblMois.MoLabel IN ("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre")

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour,

    Il faut bien sûr adapter le format des IN (...) en fonction du format de reqHeuresTravail.ReMois
    En clair il faut que ReMois soit trouvé exactement dans la liste IN (...).
    Est-ce du texte , du numérique ?

    Cdlt
    "Always look at the bright side of life." Monty Python.

Discussions similaires

  1. [AC-2007] Sous-etat à partir d'une requête croisée dynamique
    Par sig_riviere dans le forum VBA Access
    Réponses: 0
    Dernier message: 22/01/2015, 11h24
  2. Réponses: 5
    Dernier message: 10/08/2011, 11h45
  3. Requête pour cumuler une requête d'analyse croisée
    Par helouadi dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/10/2007, 16h00
  4. Etat issu d'une requête d'analyse croisée
    Par loutsky dans le forum Access
    Réponses: 3
    Dernier message: 18/03/2006, 16h19
  5. Réponses: 4
    Dernier message: 05/10/2005, 16h07

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