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

  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 269
    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 269
    Points : 19 441
    Points
    19 441
    Billets dans le blog
    63
    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 269
    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 269
    Points : 19 441
    Points
    19 441
    Billets dans le blog
    63
    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 : 365
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,

  7. #7
    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,

    Maintenant je récupère bien tous les champs, même si le retour de ma requête ne retourne rien pour certains jours de la semaine, merci User.
    Pour le moment, j'indique le nom du jour de chaque date de la semaine dans les étiquettes, je bataille pour récupérer la date du jour.
    Quelques pistes?

    Merci,

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 269
    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 269
    Points : 19 441
    Points
    19 441
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    Il faut imaginer une zone de texte pour enregistrer la date du 1er jour de la semaine et pour mettre à jour cette zone de texte, une fonction qui renvoie le 1er jour de la semaine du jour passé en argument :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function DebutSemaine(ByVal DateSemaine As Date) As Date
    'Prend en argument un jour dans la semaine choisie et renvoie la date du premier jour de cette semaine
     
    Dim i As Integer
    i = Weekday(DateSemaine, vbMonday)
    DebutSemaine = DateAdd("d", -i + 1, DateSemaine)
    End Function
    Pour la semaine en cours on aurait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.DateDebut=DebutSemaine(Date())
    Date() renvoie la date d'aujourd'hui.

    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

  9. #9
    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
    Merci User pour ton aide, tout fonctionne parfaitement grâce à tes conseils.

    Bien cordialement,

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 269
    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 269
    Points : 19 441
    Points
    19 441
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par silhouette Voir le message
    Merci User pour ton aide, tout fonctionne parfaitement grâce à tes conseils.

    Bien cordialement,
    C'est gentil
    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

+ 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