bonjour Pierre,
Pour faire les calculs d'écarts de date, il ne faut pas jouer avec Format, mais utiliser les dates telles que saisies dans la table, et alors, on n'a aucun problème de date (si les dates sont bien stockées comme dates dans les tables), et en aucun cas besoin d'utiliser la fonction dtUS qui ne peut que poser des problèmes...
Mea culpa !
tu as complètement raison.

Envoyé par
Pierre Fauconnier
Je pense que le problème vient des dates qui sont passées à la fonction DelaiStkRBLMois qui posent problème.
C'est ce que je viens de constater. Effectivement une date stockée dans une table ne doit pas être formatée et de même si la fonction est utilisée dans une requête.

Envoyé par
Gabrieel
le problème c'est qu'access cafouille qu'on a des jours ou des mois >10 et du coup mes durées de stockage sont erronées
et je n'arrive pas a trouver la bonne methode qui lui permettrait de comprendre que le 1/06/2018 c'est le 1er Juin et pas le 6 Janvier par exemple
Non Access ne cafouille pas, il applique simplement un algorithme quand il reçoit une date formatée, c'est un logiciel US et de ce fait fonctionne par défaut avec le format de date US. Il ne faut pas oublier que dans Access les dates sont stockées sous la forme d'un nombre avec décimales pour les heures mais il propose des formats car c'est plus parlant qu'un nombre: par exemple si tu tapes dans la fenêtre d'exécution ?format(43286,"dd/mm/yyyy") tu obtiendras 05/07/2018. de même que: ?format(#7/5/2018#,"Fixed") donnera: 43286,00
Donc, si on veut tester dans la fenêtre d'exécution VBA, il fautabsolument saisir les dates au format US (tout du moins celles dont les jours et les mois pourraient être inversés) :
?DelaiStkRBLMois(#06/01/2018#, #30/06/2018#, #16/10/2017#, #30/11/2016#, #28/06/2018#,"651000517")
Partager