Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 12/07/2011, 11h03   #1
Invité de passage
 
Homme
Analyste d'exploitation
Inscription : juillet 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Analyste d'exploitation

Informations forums :
Inscription : juillet 2011
Messages : 2
Points : 0
Points : 0
Par défaut comment insérer une requete dans une tables pour appeler le résult d'une autre requete ?

Bonjour,

J'ai 12 requêtes (une par mois).
La première remonte un total pour le mois-1
la seconde un total pour le mois -2 etc...

J'ai créé une table avec 12 champs (un par mois)
et un enregistrement par champs.

Je souhaiterai que chaque enregistrement aille rechercher le résultat de la requêtes qui le concerne (le premier le résultat M-1, le second le résultat M-2)

quelqu'un peut-il m'aiguiller ?
Mon raisonnement n'est peut-être pas le bon. il faut peut-être procéder autrement.

Le but est de lancer un formulaire de graphique croisé dynamique une fois par mois et de voir ainsi l'évolution de mes chiffres mais il me manque une étape en amont.

Merci

DEF

Voici ma requête qui est opérationnelle (Ce qui m'intéresse c'est la somme de NB1, NB1 étant le total du mois -1) :
Code :
1
2
3
SELECT DISTINCTROW Sum(DEF_NB_Moins1.NB1) AS [Somme De NB1]
FROM DEF_NB_Moins1
GROUP BY DEF_NB_Moins1.Createur1;
DEF STRANGER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 17h13   #2
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Bonjour,

Si j'ai bien compris votre demande, il serait en effet plus simple de créer une requête Création ou Mise à jour contenant les 12 mois et dans laquelle vous utiliseriez en remplacement de vos requêtes une fonction de calcul, cf exempke ci-après.

Sql dans fenêtre Requête - a compléter avec les autres mois :

Code :
UPDATE [Date] SET [Date].Janvier = DSum("NB1","DEF_NB_Moins1");
La requête met à jour automatiquement l'enregistrement de la table Date qui contient les champs Janvier, Février ... avec le cumul de NB1 de la table DEF_NB_Moins1 pour Janvier, à compléter avec les autres mois.

Bcdt,
Florian
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 15h05   #3
Invité de passage
 
Homme
Analyste d'exploitation
Inscription : juillet 2011
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Analyste d'exploitation

Informations forums :
Inscription : juillet 2011
Messages : 2
Points : 0
Points : 0
Merci pour la réponse.


La requête formulée lance bien ma requête M-1, mais ne renseigne pas la table.
Il n'y a pas de message d'erreur, la requête lance uniquement la requête M-1.


Mon second soucis c'est pour assembler l'ensemble des requêtes
j'ai essayé avec l'union all mais sans succès.


Le troisième soucis, est que la requête proposée remplirait la table.
Mais, si mon formulaire appelle la table, elle ne sera pas forcémment à jour.

Je ne connais pas du tout le VB mais c'est clair que la démarche serait plus simple...
DEF STRANGER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 15h21   #4
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Bonjour,

Voici la requête complète pour mettre à jour les 12 mois (vérifier si les données NB2 sont bien dans DEF_NB_Moins2, NB3 ....).

Code :
UPDATE [Date] SET [Date].Janvier = DSum("NB1","DEF_NB_Moins1"), [Date].Février = DSum("NB2","DEF_NB_Moins2"), [Date].Mars = DSum("NB3","DEF_NB_Moins3"), [Date].Avril = DSum("NB4","DEF_NB_Moins4"), [Date].Mai = DSum("NB5","DEF_NB_Moins5"), [Date].Juin = DSum("NB6","DEF_NB_Moins6"), [Date].Juillet = DSum("NB7","DEF_NB_Moins7"), [Date].Août = DSum("NB8","DEF_NB_Moins8"), [Date].Septembre = DSum("NB9","DEF_NB_Moins9"), [Date].Octobre = DSum("NB10","DEF_NB_Moins10"), [Date].Novembre = DSum("NB11","DEF_NB_Moins11"), [Date].Décembre = DSum("NB12","DEF_NB_Moins12");
Si vous n'avez pas de mise à jour :
- soit vous n'avez pas de données dans vos tables,
- soit vous n'avez pas "initialisé" la table Date en créant un premier enregistrement (même avec données fictives qui seront écrasées par la requête MAJ).

Pour votre formulaire, utilisez les instructions :

Code :
Docmd.runsql "le code sql ci-dessus"
ou

Code :
Docmd.DoCmd.OpenQuery "Nom de la requête"
dans la propriété Au chargement de votre formulaire.

Bcdt
fbtsra 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 06h28.


 
 
 
 
Partenaires

Hébergement Web