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 analyse croisée avec entête qui change


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Etat analyse croisée avec entête qui change
    Bonjour,

    J'ai créé une requête qui extrait le CA par année sur l'année en cours et les 3 années précédentes, jusque là pas de problème particulier et un état associé basé sur cette requête.

    Mon problème est que lorsque je change d'année de base mon état change il ne trouve pas le champs dans ma requête !

    Exemple :
    en 2018, ma requête sort les champs : 2015, 2016, 2017 et 2018
    Si je passe en 2019 elle sortira les champs 2016, 2017, 2018 et 2019

    Comment je peux gérer cela ?

    Merci de à tous pour l'aide.

    Stéfen

  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.

    La méthode que je vois est de remplacer tes années par des valeurs abritaires du genre AnneeMoins3, AnneeMoins2, AnneeMoins1 et Annee (AnneeMoins0 pour la cohérence) dans ta source de données en ammont de la requête d'anlyse croisée dynamique et de t'en servir.

    Après tu fais des champs calculé pour afficher la valeur de l'année dans le rapport donc tu as quelques choes comme :

    2015 2016 2017 2018
    AnneeMoins3 AnneeMoins2 AnneeMoins1 Annee

    2016 2017 2018 2019
    AnneeMoins3 AnneeMoins2 AnneeMoins1 Annee

    Tes entêtes peuvent être calculées soit
    • à partir des données initiales (avant substitution)
      ex : DMax("Annee"; "TaSourceInitiale")-3.
      Cette source peut être utilisée dans la requête de substitution aussi.

    • à partir d'un formulaire paramètre

      ex : [Forms]![TonFormParam]![Annee]-3.
      Cette source peut être utilisée dans la requête de substitution aussi.

    • à partir d'un paramètre passé à l'état.
      ex :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      if not insull(me.openargs) then
         me.EtiquetteAnneeMoins3=me.openargs-3
      end if


    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 à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Je ne peux pas le faire en amont de ma requête analyse croisée puisque je lis directement ma table, l'année est extrait de la date de l'opération et je ne veux pas ajouter de champs spécifique année dans ma table.

  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.

    Je ne peux pas le faire en amont de ma requête analyse croisée puisque je lis directement ma table, l'année est extrait de la date de l'opération et je ne veux pas ajouter de champs spécifique année dans ma table.
    Tu peux faire une requête qui transforme les données de ta table puis te servir de cette requête comme source de cette requête d'analyse croisée dynamique.

    Quelque chose comme :

    reqDonnees
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select TaTable.*, year([TaTable].[DateOpperation])-[Forms]![frmParamAnnee]![Annee] as AnneeRapport
    from TaTable
    where year([TaTable].[DateOpperation]) between [Forms]![frmParamAnnee]![Annee]-3 and [Forms]![frmParamAnnee]![Annee]

    Qui va te donner toutes les oppérations pour tes 4 dernières années pour les avec comme [AnneeRapport] = -3, -2, -1 et 0.

    Après tu te sers de reqDonnees comme source de ta requête d'analyse croisée dynamique et tu vas avoir les champs [-3], [-2], [-1] et [0] pour ton rapport.

    Ça évite de passer par un texte du type [AnneeMoinsX] qui complique juste la vie.

    Suppose que le formulaire frmParamAnnee est ouvert.

    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 à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    J'ai trouvé la solution, dans mon état j'ai nommé mes champs en dur et lors du formatage je modifie la source des controles en VBA avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        annee_0 = Year(Date)
        annee_0.ControlSource = annee_0
        annee_1.ControlSource = annee_0 - 1
    Me reste plus qu'a changer les textes des étiquettes de champs et le tour est joué !

    Merci encore pour l'aide

    Stéfen

Discussions similaires

  1. Problème avec Decimalseparator qui change dans mon dos
    Par Cavadore dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2008, 16h11
  2. Etat analyse croisée
    Par Nabouille dans le forum IHM
    Réponses: 27
    Dernier message: 29/01/2008, 09h58
  3. Réponses: 5
    Dernier message: 27/01/2008, 17h04
  4. Réponses: 2
    Dernier message: 11/04/2007, 18h25
  5. Requête analyse croisée avec MySQL
    Par drakenzara dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/09/2006, 10h14

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