0
votes

MS Access VBA sur Daadd's pour la journée en cours

J'ai une question sur la déclaration Daadd que j'utilise. L'idée est qu'un formulaire apparaît avec le jour de la semaine et vous pouvez le sélectionner pour ajouter une date d'échéance. IE: Vous choisissez lundi et si c'est lundi, cela vous donnera une journée de lundi à cause de lundi, mais s'il est mardi, le lundi suivant sera utilisé pour votre date d'échéance.

Le problème est que si c'est lundi et que vous sélectionnez lundi Il vous donne le lundi suivant comme une date d'échéance et non que la journée actuelle. P>

Voici la déclaration que j'utilise ... p>

 DateAdd('d',8-Weekday(Date(),4),Date())


0 commentaires

3 Réponses :


1
votes

Cela semble fonctionner.

thisday = date()

dateadd("d",7-weekday(thisday, vbTuesday), thisday)


0 commentaires

1
votes

Cela devrait également fonctionner:

Daadd ('d', (8 semaines (date (date (), 4)) Mod 7, date ())


0 commentaires

0
votes

Si vous n'avez pas besoin d'utiliser une solution à 1 ligne, une petite fonction serait assez pratique. Il vérifie la journée actuelle avec la semaine () code> et s'il est vbmonday code> il le renvoie. Sinon, cela donne le lundi prochain.

Sub TestMe()

    'Monday:
    Debug.Print NextMonday(DateSerial(2019, 6, 10))
    Debug.Print NextMonday(DateSerial(2019, 6, 17))

    'Not Monday:
    Debug.Print NextMonday(DateSerial(2019, 6, 7))
    Debug.Print NextMonday(DateSerial(2019, 6, 11))

End Sub


0 commentaires