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 :

Comment afficher un état d'un résultat de requete croisée dynamique? [AC-2010]


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Comment afficher un état d'un résultat de requete croisée dynamique?
    Bonjour,

    Je cherche à afficher un état d'un résultat de requete croisé dynamique, le résultat correspond à une de liste de produits consommés par jour sur une semaine.
    Mon état fonctionne bien une première fois mais dès que je change de semaine, les dates changent forcément et donc les champs de l'état ne sont plus reconnus par le moteur Access.
    En fait, ils prennent la valeur de la date pour nom de champs.

    Requête:
    Champs de ligne 1 : Semaine
    Champs de ligne 2 : Produit
    Champs de ligne 3 : Prix
    Champs de colonne : Date (C'est ce champs qui varie)
    Champs de valeur : Quantité

    Etat :
    Produits Jour1 Jour2 Jour3 Jour4 Jour5 Jour6 Jour7 Total_Qté Qté*Prix
    Produit Qté Qté Qté Qté Qté Qté Qté

    Existe t-il un moyen de rendre ces champs de date de colonne dynamiques?
    Ou existe -il une autre solution?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 291
    Points : 19 493
    Points
    19 493
    Billets dans le blog
    64
    Par défaut
    Bonsoir,

    L'idée est de mettre à jour les étiquettes des en-têtes correspondant aux jours en utilisant du code VBA.
    Et surtout d'utiliser comme colonne l'indice des jours de la semaine (1,2...7).
    Donc, il faut commencer par modifier la requête source de façon à afficher les indices des jours de la semaine...

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Bonsoir,

    Merci User pour tes conseils, j'ai donc partiellement résolu mon problème en :
    - rajoutant un champs calculé [jour] dans ma table qui récupère le numéro du jour en fonction d'une date JourSem([date_notes];2)
    - Recréation de la la requête analyse croisée dynamique avec les mêmes critères
    - Recréation de l'état basée sur cette nouvelle requête

    Par contre, il subsiste un souci, si il manque un jour dans le résultat de la requête, j'aurai le même message d'erreur car l'état est basé sur 7 jours.

    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 291
    Points : 19 493
    Points
    19 493
    Billets dans le blog
    64
    Par défaut
    Bonjour,

    Il faut utiliser un in dans la clause pivot d'une requête analyse croisée pour fixer les 7 colonnes:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TRANSFORM FIRST(Note)
    SELECT *
    FROM T_Planning
    GROUP BY ID_Planning
    PIVOT WEEKDAY([date_planning],2) in (1,2,3,4,5,6,7);

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Bonsoir,

    Merci User, j'ai donc modifié ma requête comme suit :
    TRANSFORM Count(R_Notas_X_Semana.Cantidad) AS CompteDeCantidad
    SELECT R_Notas_X_Semana.Semana, R_Notas_X_Semana.Producto, R_Notas_X_Semana.Precio, Count(R_Notas_X_Semana.Cantidad) AS [Total de Cantidad]
    FROM R_Notas_X_Semana
    WHERE (((R_Notas_X_Semana.Semana)=22))
    GROUP BY R_Notas_X_Semana.Semana, R_Notas_X_Semana.Producto, R_Notas_X_Semana.Precio
    PIVOT R_Notas_X_Semana.Dia in (1,2,3,4,5,6,7);


    *R_Notas_X_Semana.Dia affiche le numéro du jour de la semaine.

    Mais j'ai le message suivant :
    Nom : Message.gif
Affichages : 367
Taille : 38,0 Ko

    Pour information, j'ai scindé ma base.

    Merci

  6. #6
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2014
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    J'ai eu ce message car j'ai utilisé le mode SQL direct pour faire la modification du code.
    Il faut plutôt aller dans le mode création de la requête:
    -Affichage
    -SQL mode sql

    Sinon on passe en mode ODBC.

    Je continue mes modifications...

    Cordialement,

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

Discussions similaires

  1. [AC-2010] Comment afficher un état selon des critère
    Par kenthsmile dans le forum IHM
    Réponses: 2
    Dernier message: 18/09/2014, 19h27
  2. comment afficher par paire le resultat de 2 requetes?
    Par gilbertbicot dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/02/2009, 16h06
  3. Comment afficher un état d'avancement (Record en cours)
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/05/2008, 10h36
  4. Réponses: 7
    Dernier message: 12/11/2007, 21h08
  5. Réponses: 20
    Dernier message: 30/05/2006, 13h24

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