Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/07/2011, 18h34   #1
Invité de passage
 
Inscription : décembre 2009
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 7
Points : 1
Points : 1
Par défaut retour vers le passé ?

Bonjour à tous,
Je reviens avec une nouvelle question , si quelqu'un sait y répondre aussi vite que les fois précédentes, ce serait
J'ai une base access (lourde) qui me permet de mesurer des phénomènes (retours clients) à une date donnée (par une table "singleton", le 1er du mois courant en général).
Je souhaiterai être capable de tracer l'évolution temporelle du phénomène. Dans le futur, c'est facile, il me suffit de reporter les résultats chaque mois.

Où ça devient plus coton, c'est pour retracer le "passé" (j'ai les données sur 3 ans et demi, mais je n'exploite que depuis peu). La solution "bestiale" est de mettre dans ma table "singleton" 1er janvier 2008, exécuter mes requêtes, noter les résultats, puis mettre 1er février 2008... et recommencer jusqu'au 1er juillet 2011.
Sauf que ça suppose que je reste éveillé devant mon PC (chaque calcul prend environ 1 heure, donc j'en ai pour 42 heures...)

Mon réve serait de le faire "automatiquement" (je tape mes 42 dates dans une table, je lance le truc, je pars en week-end (48 heures) et lundi matin j'ai mes résultats

Quelqu'un sait-il comment faire ? Merci d'avance de vos lumières !!
trend67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 19h02   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Comment stockes-tu tes résultats ?

Une solution relativement simple :
  • Créer une boucle en VBA qui va modifier ta base Singleton avec les différentes dates.
  • Lancer le calcul par VBA
  • Enregistrer les résultats
  • Recommencer jusqu'à ce que toutes tes dates aient été traitées.

Ici un exemple de code qui ferait cela :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
private sub CalculerLePasse()
   dim db as dao.database:set db=currentdb
   dim r as dao.recordset:set r=db.openrecordset("Singleton")
   dim dateDebut as date : dateDebut=dateserial(2008,01,01)
 
   do while dateDebut<=dateserial(2011,01,01)
      r.edit
      r![DateDebut]=dateDebut
      r.update
 
      'Ici le code pour exécuter les requêtes
      docmd.setWarning false 'Évite les messages de confirmation des requêtes
      docmd.openQuery("TaRequeteDeTraitement1")
      docmd.openQuery("TaRequeteDeTraitement1")
      docmd.openQuery("TaRequeteDeTraitement2")
      docmd.openQuery("TaRequeteDeTraitement3")
      '
      ' Mettre ici autant d'appel de requête que nécessaire
      '
      docmd.setWarning true 'Rétabli les messages de confirmation des requêtes
 
      'Ici mettre le code pour sauvegarder les résultats
      ' Difficile de te donner des détails
      ' car tout dépend de la façon dont tu veux le faire
      ' par ex : copie dans une table, exportation vers Excel, Sauvegarde dans un fichier texte
 
      'Passe au mois suivant
      dateDebut=DateAdd("m",1,dateDebut)
   loop
 
   r.close:set r=nothing
   set db=nothing
end sub
Autre solution : créer 42 copies paramétées de ton appli et les lancer avec un .bat :o). Même si cela parait farfelu, j'ai eu un cas où j'ai procéder comme cela et c'était la meilleur méthode dans mon cas.

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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 19h05   #3
Membre Expert
 
Avatar de curt
 
Homme Curt
Bureau d'Etudes
Inscription : mars 2006
Messages : 981
Détails du profil
Informations personnelles :
Nom : Homme Curt
Localisation : France

Informations professionnelles :
Activité : Bureau d'Etudes
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : mars 2006
Messages : 981
Points : 1 170
Points : 1 170
Bonsoir trend67,

à priori ça n'a rien de bien méchant.

Une table dans laquelle tu mets tes dates
Une boucle pour lister chaque date
Une requête insertion paramétrée pour remplir ta table Singelton.

Il faudrait peut être avoir ta base pour creuser plus en profondeur, mais ça me semble abrodable.

------------------------------

Oups , Marot_r vient déjà de te répondre !!!!

Curt
__________________
Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
---------------------------------------------------------------------
Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
Et si vous faisiez un bon geste en 2012 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !
curt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 20h15   #4
Invité de passage
 
Inscription : décembre 2009
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 7
Points : 1
Points : 1
Merci à tous les deux !!!
Je suis pour l'instant totalement ignare en VBA, mais comme Marot_r m'a donné 95% de la solution, c'est l'occasion de commencer !!!

J'essaye et vous tiens au courant !!

Encore merci !!!!
trend67 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 15h41   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Attention j'avais fait une faute de frappe l'instruction est DoCmd.SetWarning et non DoCmd.Setwraning.

J'ai corrigé le code du post précédent.

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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h26.


 
 
 
 
Partenaires

Hébergement Web