[Acess - VBA] Manipulation de date

Résolu
Bonjour,

voilà, je voulais faire un Etat en filtrant la date de façon à ce que l'Etat m'affiche les commandes passées il y a plus de 15 jours.

Concrètement, je dois faire Date() - 15 jours ...
et forcément si le numéro du jour et inférieur à 1, il doit retourner à 31 en retirant 1 au numéro du mois.

Mon code qui ne fonctionne pas :

Private Sub Report_Load()

Dim Month_prev As Integer
Month_prev = Month(Date) - 15

If (Month_prev < 0) Then
Reports![COMMANDES en retard].Filter = "[Date_commande] < #" & Day((Date) - 15) & "/" & Month((Date) - 1) & "/" & Year(Date) & "#"
Else
Reports![COMMANDES en retard].Filter = "[Date_commande] < #" & Day((Date) - 15) & "/" & Month(Date) & "/" & Year(Date) & "#"
End If

End Sub


J'accepte aussi les modifications purement graphique si le VBA est inutile ici.

Merci.

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bonjour

    forcément si le numéro du jour et inférieur à 1, il doit retourner à 31 en retirant 1 au numéro du mois

    Tu te crées des problèmes tout seul car une date est un nombre de jours et donc si tu soustrait 15 à ta date elle va changer de mois correctement en tenant compte de la durée du mois.

    Pour faire cela tu n'as pas besoin de macro d'ailleurs, tu peux le faire directement dans le paramétrage de ton état.
    1. gbinforme, merci

      Tu as vu juste, il m'a suffit de faire une requète et d'écrire dans la case "Où" de la colonne "Date_commande" :

      <(Date()-15)

      La date est bien un nombre de jours, merci.