Bonjour.
Sauf indication contraire non mentionnée dans ton post, tu n'as pas besoin de VBA.
Dans une requête tu peux utiliser quelque chose comme
Between dateserial(year(dateAdd(-1,"m",date())), month(dateAdd(-1,"m",date()), 18) and dateserial(year(date), month(date), 17))
Et on peut aussi faire comme cela
Between "#" & format(dateAdd(-1,"m",date()), "yyyy-mm") & "-18#") and "#" & format(date(), "yyyy-mm") & "-17#")
Si tu es sur un Access en français il faut remplacer les "yyyy-mm" par "aaaa-mm" et les virgules (,) par des point-vgules (;), le reste Access s'occupe de traduire.
Le # au début et à la fin indique à Access que c'est une date.
Le format "yyyy-mm-dd" assure que Access ne confonde pas le jour et le mois.
C'est surtout un problème si tu travailles comme moi dans un environnement bilingue où les format dd/mm/aaaa et mm/dd/aaaa sont utilisés.
Parfois Access lit le 02/01/2024 comme le 2 janvier 2024 et parfois comme le 1er Fevrier 2024. Avec le format inversé yyyy-mm-dd il n'y a pas de doute sur ce qui est le mois et ce qui est le jour.
A+
Partager