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 :

Tri dans requête d'analyse croisée


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut Tri dans requête d'analyse croisée
    Bonjour à tous,

    J'essaye sans succès d'appliquer un tri chronologique sur les colonnes de la requête d'analyse croisée suivante, qui sont toujours classées par ordre alphabétique :

    Nom : 1.jpg
Affichages : 111
Taille : 46,3 Ko

    Nom : 2.jpg
Affichages : 97
Taille : 72,7 Ko

    Je sais que le tri sera bon si je mets numAnnee & numMois dans ma deuxième colonne mais j'aimerais conserver l'affichage de la première image.

    A noter que je mettrai un critère pour pouvoir choisir le 1er mois et le dernier mois pour faire des calculs selon les périodes qui peuvent être à cheval d'une année sur l'autre.

    Est-ce que c'est possible ?

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    En automatique, à ma connaissance ce n'est pas possible.
    L'astuce consiste à utiliser une format du type AAAA/MM comme tu l'as suggéré.

    Par contre tu peux explicitement indiquer les entêtes dans la requête croisée dynamique et là je crois que c'est ton ordre qui prévaut donc peut-être qu'en écrivant toi-même le SQL de la requête il y a une possibilité.
    Ici un tutorial expliquant le faire depuis l'interface.
    https://www.quackit.com/microsoft_ac...ccess_2016.cfm
    Change l'affichage pour SQL et regarde ce que Access a fait en interne, ça devrait te donner un piste.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Bonjour marot_r et merci pour ta réponse,

    Ma requête sera filtrée par un critère sur le mois de début et un autre sur le mois de fin. Le nombre de mois à prendre en compte peut donc varier.

    L'autre écueil, c'est qu'on peut avoir besoin d'afficher, par exemple, la période de octobre 2021 à mars 2022. Si je force l'affichage de tous les mois et de l'ordre dans la requête, j'ai peur que le document final soit illisible selon les critères demandés.

    J'ai aussi oublié de le demander dans mon post initial, toujours à propos du tri, est-ce qu'il est possible de forcer la position de la colonne "Total" pour qu'elle soit à droite des colonnes des mois (et non à gauche comme sur l'image 1), j'ai essayé de le faire manuellement et ça fonctionne une fois, mais si ensuite je modifie mes critères de mois de début et de fin et que je ré ouvre la requête, elle affiche les nouveaux mois à droite de la colonne "Total" et les autres à gauche...

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Ma requête sera filtrée par un critère sur le mois de début et un autre sur le mois de fin. Le nombre de mois à prendre en compte peut donc varier.
    C'est pour cela qu'il faut que tu "écrives" le SQL toi même.
    Et je pense que cela va résoudre ton problème de total aussi.
    On peut assez facilement faire cela avec un peu de VBA.
    Si tu as besoin d'aide pour cela, poste le SQL de ta requête actuelle, ça aidera à te guider.

    Pour la lisibilité, pas grand chose possible en Access. On n'a pas de zoom comme dans Excel donc si tu a besoin de 12 colonnes et que ton écran ne peut en afficher que 4 simultanément et bien il faudra utiliser l'ascenseur horizontale pour les voir.
    Tu peux aussi utiliser un petite police mais perso en dessous de 8 je trouve cela difficile à lire.
    Enfin tu peux présenter les résultats dans un rapport en mode "Vue avant impression" où là tu as un zoom mais bon pas sur que ce soit tellement plus pratique.

    Faire cela en Excel est généralement plus facile car l'outil est à la base conçu pour présenter des données. Access c'est pour gérer les données.
    Les tableaux croisés dynamiques de Excel sont LARGEMENT plus puissant que les requêtes croisées dynamiques de Access.
    Ce que je fais assez régulièrement c'est d'exporter les données source de Access en Excel et ensuite faire la présentation dans Excel.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Voici le code de ma requête :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PARAMETERS [Formulaires]![frmCompta].[txtMoisDebut] Short, [Formulaires]![frmCompta].[txtMoisFin] Short, [Formulaires]![frmCompta].[txtHS] Short;
    TRANSFORM Sum(rqtMoisDetail.HSM) AS SommeDeHSM
    SELECT rqtMoisDetail.nomAssMat, Sum(rqtMoisDetail.HSM) AS Total, IIf(Sum([HSM])>[Formulaires]![frmCompta].[txtHS],[Formulaires]![frmCompta].[txtHS],Sum(hsm)) AS [à payer], IIf(Sum([HSM])>[Formulaires]![frmCompta].[txtHS],Sum(hsm)-[Formulaires]![frmCompta].[txtHS],0) AS [à récupérer]
    FROM rqtMoisDetail
    WHERE ((([numAnnee] & [numMois]) Between [Formulaires]![frmCompta].[txtMoisDebut] And [Formulaires]![frmCompta].[txtMoisFin]))
    GROUP BY rqtMoisDetail.nomAssMat
    PIVOT [numAnnee] & [numMois];

    je mets aussi l'appli au cas où ça aiderait mieux. C'est la requête rqtCompta, les critères à renseigner sont dans le formulaire frmCompta.
    Fichiers attachés Fichiers attachés
    • Type de fichier : 7z AM8.7z (27,7 Ko, 20 affichages)

Discussions similaires

  1. [AC-2003] Requête d'analyse croisée : tri via une table de lien sur le champ "En-tête de colonne"
    Par michail_arkov dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/06/2013, 10h01
  2. [AC-2007] Tri dans requête analyse croisée
    Par PapouDomi dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/11/2012, 13h43
  3. Requête d'analyse croisée insérée dans une ListView
    Par moirs555 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 10/10/2011, 11h44
  4. Réponses: 2
    Dernier message: 28/01/2008, 13h54
  5. Problème dans requête pour analyse croisée
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/06/2007, 09h54

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