Bonjour,
On ne peut pas faire de cumul avec les requêtes Access.
On peut simuler quelque chose d'approchant, mais ça fait des requêtes complexes qui peuvent de surcroit être longues à s'exécuter.
Exemple
1 2 3 4 5 6 7 8
| SELECT T_Article.[Ref Art], T_Ventes.[Date Livraison], T_Ventes.Client,
T_Ventes.[Reste à livrer], T_Stock.Stock-[CumulArt] AS NvStock,
(SELECT Sum(TV.[Reste à livrer]) From T_Ventes As TV
Where (TV.[Ref Art]=T_Article.[Ref Art] And TV.[Date Livraison]<T_Ventes.[Date Livraison])
Or (TV.[Ref Art]=T_Article.[Ref Art] And TV.[Date Livraison]=T_Ventes.[Date Livraison] And TV.Client<=T_Ventes.Client)) AS CumulArt
FROM (T_Ventes INNER JOIN T_Article ON T_Ventes.[Ref Art] = T_Article.[Ref Art]) INNER JOIN T_Stock ON T_Article.[Ref Art] = T_Stock.[Ref Art]
WHERE (((T_Ventes.[Date Livraison])<=Date()))
ORDER BY T_Article.[Ref Art], T_Ventes.[Date Livraison], T_Ventes.Client; |
La création d'un état est ce qui me paraît le plus approprié.
On peut créer un regroupement sur «Ref Art».
Dans l'en-tête de ce groupe on met les informations relatives à «Ref Art», ainsi que le stock initial.
Dans la zone détail, on crée un contrôle masqué «txtCumulAlivrer» dont la source sera «Reste à livrer» et qui fera le cumul par groupe, c'est à dire par «Ref Art».
Le nouveau stock est donc (à mettre dans une zone de texte) :
=[Stock]-[txtCumulAlivrer]
A+
Partager