IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Un p'tit problème de calcul de dates sous Acces


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Un p'tit problème de calcul de dates sous Acces
    Bonjour à tous !

    Etant plutôt un habitué du forum, je vais rapidement exposer mon problème. Je souhaite calculer le nombre de jour ouvré entre deux dates données sous Access.
    J’ai pris le temps de lire à la FAQ et d’effectuer des recherches sur le forum, ce qui m’a permis d’élaborer un code que j’ai voulut le plus simple possible.
    Pour le moment, mon objectif est « d’exclure » les week-ends du comptage des jours. En effet, je préfère procéder de manière incrémentale, le cas des jours féries étant une autre paire de manches ! (traiter dans la faq VBA Access si ma mémoire est bonne… ).
    Voilà donc, le bout de code « incriminé » qui ne marche pas, et honnêtement , je ne vois pas ce qui cloche dans ce code ! et vous

    NB : je travaille sous Access 97…
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Public Function NombreJours(ByVal Date1 As Date, ByVal Date2 As Date) As Integer
     
     
    Dim nbjour As Integer
    nbjour = 0
     
    If Date2 < Date1 Then
      NombreJours = 0
    Else
     While DateDiff("d", Date1, Date2) >= 0
          If DatePart("d", Date1) <> (1) And DatePart("d", Date1) <> (7) Then
          nbjour = nbjour + 1
     
          Date1 = DateAdd("d", 1, Date1)
          End If
    NombreJours = nbjour
     Wend
     
     
    End If
     
    End Function

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    Des erreurs, j'en vois rapidement 2 grosses :
    - C'est WeekDay qui te donnera le numéro du jour de la semaine
    - tu n'incrémentes pas Date1 si le jour est samedi ou dimanche

    Donc dès que tu tombes sur un DatePart qui renvoie un 1 ou un 7, tu tournes en rond...

    Tu nous avais juste dit que ta fonction ne marchait pas, mais pas que tu n'en revenais jamais!

    Pour rester dans ton idée de départ, tu peux essayer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function NombreJours(ByVal Date1 As Date, ByVal Date2 As Date) As Integer
     
    NombreJours = 0
     
    If Date2 < Date1 Then Exit Function
     
    While DateDiff("d", Date1, Date2) >= 0
        If Weekday(Date1, vbMonday) <> 6 And Weekday(Date1, vbMonday) <> 7 Then NombreJours = NombreJours + 1
        Date1 = Date1 + 1
     
    Wend
     
     
    End Function
    Bon courage,

    PGZ

  3. #3
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Difficile d'être dimanche et samedi en même temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DatePart("d", Date1) <> (1) Or DatePart("d", Date1) <> (7) Then
    Pas vérifié le reste.

    Domi2

  4. #4
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Ca marche !!!
    MERCI beaucoup pgz, et désolé pour les "grossières" erreurs dans mon code (Domi2), j'étais un peut presser !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de calculs sur dates
    Par Sefrou dans le forum IHM
    Réponses: 3
    Dernier message: 12/02/2011, 00h27
  2. problème requète avec les dates sous sql server
    Par fayabones dans le forum Développement
    Réponses: 2
    Dernier message: 04/06/2009, 22h27
  3. problème avec java.sql.Date sous WinXp BEA Apache
    Par astaroth_vertigo dans le forum Hibernate
    Réponses: 5
    Dernier message: 06/09/2007, 09h20
  4. Problème d'affichage de date sous access 2003
    Par FuNkY48 dans le forum Access
    Réponses: 7
    Dernier message: 11/12/2006, 14h04
  5. [Calendar]Problème de calcul de date
    Par valerie90 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 08/12/2004, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo