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 :

Rapport de tel mois au début de l'année


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 20
    Points
    20
    Par défaut Rapport de tel mois au début de l'année
    Bonjour le forum,

    Aujourd'hui, mon chef m'a demandé de faire une requête que je n'ai jamais faite pour le moment. J'ai cherché toute la journée d'hier, mais en vain.
    Je fais appel à vous pour pouvoir me mettre sur la voie.

    J'explique le problème :
    J'importe un fichier excel provenant d'excel grâce à un script d'import vb. Ce fichier, je l'importe chaque mois.
    Au début, cette base me servait à ressortir les chiffres du mois en cours du fichier excel, retravaillés bien sur.
    Cependant, mon chef m'a demandé de faire un état avec les données cumulées.

    Pour mon premier cas de figure (celui du mois en cours qui fonctionne parfaitement), j'avais un mois et une année qui faisait référence à une table de dimension et qui allaient pioché dans ma table d'import les données (en fonction de ce mois et de cette année. Exemple : "April" et "2012" allaient chercher les données du mois d'Avril 2012).
    Pour ma nouvelle requête j'aimerais faire en sorte que la base prennent toute l'année jusqu'a ce mois ci. (Exemple : "April " et "2012" vont chercher toutes les données de janvier jusqu'à Avril).

    Une idée ?

    Merci d'avance,

    Cordialement.
    Malela.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Points : 324
    Points
    324
    Par défaut
    Bonjour,

    Tu pourrais récupérer l'année dans une variable et faire dans ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Where Date Between #01/01/" & ANNEE & "# AND #" & MaDate & "#;"
    La variable Madate ci-dessus représente ta date de fin à savoir dans ton exemple 01/04/2012.

    Cordialement.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    C'est bien trouvé, je n'y avais pas réellement pensé.
    Mais le "hic" c'est que mes dates ne sont pas en champs dates, en effet, ma table de dimension est disposé que en Mois. Janvier, Fevrier, Mars,... Cela va-t-il poser problème ?

    Merci pour ton aide !

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Points : 324
    Points
    324
    Par défaut
    Un traitement un peu plus complexe en vba devrait faire l'affaire. Ton champ mois est de type texte ou numérique?

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Numérique !

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Points : 324
    Points
    324
    Par défaut
    Alors j'ai un traitement qui peut te convenir en supposant que tes mois sont dans l'ordre (1 pour janvier, 2 pour février ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Public Sub GetDate()
     
    Dim mois As Integer
    Dim reqsql As String
     
    mois = month(Now)
     
    reqsql = "SELECT Test.* FROM Test WHERE Test.Mois <" & mois
    CurrentDb.QueryDefs("GetData").sql = reqsql
     
    End Sub
    Dans la variable mois, on récupère le numéro du mois en cours. Ensuite tu récupère dans ta table (ici Test) toutes les données pour lesquelles le mois est inférieur à ta variable mois. Pour terminer, tu l'applique à ta requête de sélection (ici GetData).

  7. #7
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Ca me parait bien. Mais ce code, je l'implante dans le code du Formulaire, mais ensuite ? Il faut que grâce à ce formulaire, et donc le mois récupéré grâce à ton script, il fasse un traitement des données. Rien à voir avec la requête ?

    Je débute, désolé...

    Merci de ton aide.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Points : 324
    Points
    324
    Par défaut
    Sinon il y a un truc plus simple, dans ta requête tu ajoute une condition sur ton mois. comme ci-joint. Ainsi, chaque mois tu auras toutes tes données comme tu le souhaite? Est-ce que ça répond à ta question?
    Images attachées Images attachées  

  9. #9
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Oui c'est juste !
    Et si, par exemple, je veux un mois antérieur à celui d'Avril. Par exemple, nous voulons regarder les valeurs de Mars. J'aurais voulu faire quelque chose dans le style : <[Forms]![Synthese]![Month](Maintenant())
    (En gros, on prend un mois que l'on choisit dans le formulaire "Synthese" (la case s'appellant "Month")
    J'ai essayé, et la requête ne marche pas. Une erreur fonction [Forms]![Synthese]![Month] non définie dans l'expression...

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Points : 324
    Points
    324
    Par défaut
    Si dans ton formulaire la sélection correspond directement au numéro du mois que tu souhaites, il te suffit de mettre : <[Forms]![Synthese]![Month].

  11. #11
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Effectivement, j'ai rajouté un "<=" avant, pour avoir les données du mois actuel.

    Merci beaucoup de ton aide, et désolé du dérangement. Bonne journée à toi !

    Malela.

Discussions similaires

  1. Début de mois et fin de mois et choix de l'année
    Par CLion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/04/2015, 02h09
  2. Réponses: 2
    Dernier message: 31/05/2012, 14h30
  3. Créer un rapport avec les mois en abscisse
    Par xdiexid dans le forum Microsoft Dynamics CRM
    Réponses: 1
    Dernier message: 16/06/2010, 11h55
  4. Sortie automatique d'un rapport a chaque mois
    Par charleshbo dans le forum Access
    Réponses: 6
    Dernier message: 26/04/2006, 17h13
  5. Réponses: 1
    Dernier message: 28/10/2004, 21h27

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