[Acess - VBA] Manipulation de date

Résolu/Fermé
ange_oliver - 15 juin 2010 à 17:15
ange_oliver Messages postés 10 Date d'inscription mercredi 16 juin 2010 Statut Membre Dernière intervention 2 avril 2012 - 16 juin 2010 à 10:34
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

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
16 juin 2010 à 08:54
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
ange_oliver Messages postés 10 Date d'inscription mercredi 16 juin 2010 Statut Membre Dernière intervention 2 avril 2012 1
16 juin 2010 à 10:06
Ok merci, mais comment ?
0
ange_oliver Messages postés 10 Date d'inscription mercredi 16 juin 2010 Statut Membre Dernière intervention 2 avril 2012 1
16 juin 2010 à 10:34
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.
0