Bonjour à tous et merci de votre temps et de votre aide.
Pour faire des calculs (mon client me demande presque de réécrire Excel :-) j'ai besoin d'avoir la somme des temps quotidiens disponibles de mes ressources.
J'ai donc fait une requête de regroupement qui me fait cela.
Et je souhaites enregistrer ces valeurs dans ma table de calcul, une valeur par jour qui pour ce jour est la même pour toutes mes activités.
J'utilise une table intermédiaire de calcul à cause de problème de performance.
Ci-joint une image de ce que j'aimerai faire.
et ici le SQL :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 UPDATE tblPlanif_GroupeActivite_Quotidien INNER JOIN reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour ON (tblPlanif_GroupeActivite_Quotidien.NoGroupeAff = reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour.NoGroupeAff) AND (tblPlanif_GroupeActivite_Quotidien.NoTerr = reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour.NoTerr) AND (tblPlanif_GroupeActivite_Quotidien.NoDir = reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour.NoDir) AND (tblPlanif_GroupeActivite_Quotidien.DateHeure = reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour.DateHeure) AND (tblPlanif_GroupeActivite_Quotidien.Annee = reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour.Annee) SET tblPlanif_GroupeActivite_Quotidien.NbHeureDispoQuotidien = [reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour].[NbHeureDispo];
Mon problème c'est que cela fait une relation de 1 à plusieurs et que Access dit que la requête ne peut être mise à jour.
J'ai essayé en jouant sur le type de jointure et/ou l'unicité des enregistrements sans succès mais j'ai peut-être raté un truc.
Je pourrais remplacer la jointure par un DFirst mais ma requête de cumul [reqPlanif_MainOeuvre_TempsAssignationQuotidien_CumulJour] est assez longue (environ 20s pour avoir les résultats) et que j'ai quand même 124830 enregistrements à mettre à jour dans [tblPlanif_GroupeActivite_Quotidien].
Je l'ai codé en VBA mais cela met des siècles à s'exécuter.
J'ai fait un essai avec un autre algorithme plus intelligent mais pour le moment il n'est pas correct et je trouve dommage d'voir à réécrire quelque chose que Access pourrait faire pour moi.
Donc ma question est : Y-a-t'il un moyen pour que Access s'aperçoive que mon champ mis à jour est dans une seule table, que le fait qu'il y ai une jointure multiple n'est pas grave et qu'il me fasse la mise à jour.
A+
Partager