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 :

Actualisation en fonction de l'année


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 63
    Points
    63
    Par défaut Actualisation en fonction de l'année
    Bonjour je developpe une application dans laquelle j'analyse des données annuelles.

    J'utilise des requetes dans un fichier excel ( 1 fichier par année ) la seule variable qui change est l'année.
    Dans ma base access j'ai une table par année ( 400 000 enregistrements par table)
    Pour une année j'ai 40 requetes.

    Avez vous une idee pour m'éviter de créer les 40 requetes pour chaque année que je vais analyser?

    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 63
    Points
    63
    Par défaut
    Désolé je vais essayer d'etre plus precis

    J'utlise un fichier excel dans lequel j'analyse des données financieres d'une année , pour cela chaque champ du tableau excel est une requete de ma base access (version 2000)
    J'ai un fichier excel par année
    Dans ma base access j'ai une table par année.

    Je voudrais savoir s'il été possible en changeant l'année dans le fichier execl que les requetes pointent sur la bonne année . Une solution consisterai à avoir q'une table avec tous les enregistrements des différentes années mais cela ferai plus de 1 Million de ligne j'ai peur que ce soit trop lourd.

    Avez vous une idée?

    Merci pour votre aide

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonsoir,

    @Pierre...

    Excellent...

    Mais avec une MsgBoxEx d'arkham46, ça aurait eu une toute autre allure...

    Domi2

    P.-S. Pour le problème lui-même, suis assez dubitatif aussi... Un peu de précision(s) serai(en)t bienvenue(s)

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 129
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    1 million de lignes dans Excel, cela veut dire qu'il faut déjà Excel 2007, qui contient 1.048.576 lignes...

    Mais est-il utile de traiter autant de lignes?

    Personnellement, je préférerais créer des requêtes dans Access, puis utiliser MSQuery dans Excel pour me connecter à la requête Access... Par ce chemin, il y a probablement moyen de gérer moins de lignes

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Ou peut-être, une seule table dans Access, avec le million de lignes (sous réserve de la taille max. d'une base) et importer d'abord les lignes à traiter dans une table temporaire, avec l'année comme critère.

    Après, les requêtes ne pointent que vers la table temporaire.

    Pas forcément très "élégant", mais cela me semblerait assez stable et solide comme solution.

    L'inconnue, c'est les performances...

    Domi2

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour à tous,
    spud, tu dis avoir un fichier Excel par année et une table Access par fichier.
    Pour que les requêtes pointent sur la bonne table, il faut juste connaître le nom de chaque table selon l'année.
    S'il t'est impératif d'avoir un fichier par année; tu peux envisager de créer un nouveau fichier Excel qui te servira de menu :
    - Création d'un nouveau fichier (nouvelle table Access .....)
    - Consultation d'un fichier (via une liste des années consultables, tu récupères les noms des fichiers Excel existants)

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 63
    Points
    63
    Par défaut
    Merci pour toutes vos réponses , je vais essayer de repréciser ma question.

    J'utilise une base ACCESS dans laquelle je fais un import par année d'une extraction SAP pour 2009 par exemple Import2009. Une table fais environ 300 000 lignes.
    Je joins le shéma de cette base.

    Ensuite je reconstitue dans excel via MSQUERY un compte de résultat annuel.
    Dans lequel j'utilise des requetes qui regroupe des comptes, des groupes de nature ou des centre de coûts par exemple la requete suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT Sum(Import_2009.[En DevSoc]) AS [SommeDeEn DevSoc]
    , Import_2009.Période
    , Sum(Import_2009.[En DICtrPr]) AS [SommeDeEn DICtrPr]
     
    FROM Import_2009 INNER JOIN Plan_comptable_resultat 
    ON Import_2009.Compte = Plan_comptable_resultat.Compte
     
    GROUP BY Import_2009.Période, Plan_comptable_resultat.Nom_groupe
    HAVING (((Plan_comptable_resultat.Nom_groupe)="NE22-COKE"));
    Le mois est un paramétre qui se mets à jour en fonction du mois saisi dans Excel.

    Je joins la restitution excel que je fais .

    Mon probléme est donc que toutes mes requetes pointes sur la table import 2009.
    Pour faire la meme chose pour 2008 je ne vois comme solution que de me retapper toutes les requetes en changeant uniquement l'année et faire de meme dans ms query.
    Existe t-il une solution pour mettre l'année comme parametre dans le fichier excel afin qu'il s'actualise en fonction de celle ci .
    Je suis pas vraiement expérimenté dans le domaine j'apprends

    Merci pour votre aide
    Images attachées Images attachées   

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour à tous et merci spud96 d'avoir précisé ton besoin,

    Je ne te réponds pas pour Excel.
    En revanche je te propose un début de solution facile à réaliser côté Access.

    [EDIT]
    C'est une variante de l'idée proposée par Domi2:

    Citation Envoyé par Domi2 Voir le message
    Ou peut-être, une seule table dans Access, avec le million de lignes (sous réserve de la taille max. d'une base) et importer d'abord les lignes à traiter dans une table temporaire, avec l'année comme critère.

    Après, les requêtes ne pointent que vers la table temporaire.
    [/EDIT]

    Créer une requête Access, par exemple nommée [Import_Actif] et utiliser cette requête comme source de données dans les requêtes MSQuery.
    Le nom [Import_Actif] est fixe et permet d'éviter la modification ou le paramétrage des requêtes MSQuery.

    Ensuite, selon l'année que l'on veut analyser, il "suffit" de modifier la requête Access [Import_Actif].

    Par exemple pour 2008:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FOM Import_2009;
    Par exemple pour 2008:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FOM Import_2009;

    Si cette démarche te tente, l''étape suivante serait:
    << comment automatiser la modification de [Import_Actif] pour cibler une année particulière ? >>

    Bonne journée, bon week-end.
    _

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2010, 16h12
  2. Réponses: 2
    Dernier message: 08/07/2010, 16h05
  3. [VxiR2] Rapports s'actualisant en fonction du login de l'utilisateur
    Par kfmystik dans le forum Deski
    Réponses: 3
    Dernier message: 10/03/2009, 19h02
  4. Fonction Date ADD + Année
    Par Lorenzogazier dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/02/2008, 20h03
  5. select en fonction de l'année d'une date
    Par maraly dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/03/2007, 09h51

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