Bonjour.
Tu peux le faire en SQL avec la fonction DMax().
Quelque chose comme
DateDonneesPrecedente: DMax("DateDonnees"; "tblDonnees"; "[DateDonnees]<#" & format([tblDonnees].[DateDonnees]; "aaaa-mm-jj") & "# and [Matricule]=" & [tblDonnees].[Matricule])
Après il suffit de faire la différence entre [tblDonnees].[DateDonnees] et DateDonneesPrecedente, si c'est égale à 1, c'est que c'est "contigue".
Mais peut-être qu'en VBA ce serait plus simple.
Il te suffit de trier les données par matricule et date et de détecter les "changements de lot" en parcourant les données.
Si le matricule change ou si la différence entre la date courante et la date mémorisée de l'enr précédent est > 1 tu changes de lot.
Cela suppose que tu peux ajouter un champ "NumLot" à ta table initiale ou que tu fais une copie dans une table de travail.
Accessoirement la solution en VBA serait sans doute plus rapide que les DMax() car tu ne ferai qu'une seule "passe" pour identifier les lots.
A+
Partager