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 :

Calcul du nombre de jours entre plusieurs dates


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Calcul du nombre de jours entre plusieurs dates
    Bonjour !

    Dans une requête, j'ai une liste d'employés et leur horraire. Je me retrouve avec un tableau comme celui-ci :

    Pascal 15/02/2007 17/02/2007
    Pascal 17/02/2007 17/02/2007
    Pascal 18/02/2007 19/02/2007
    Pascal 19/02/2007 19/02/2007

    J'aimerais calculer le nombre de jours que cet employé a travaillé entre le 15 et le 19 février. La réponse est 5 jours. Mais comment y arriver alors que la date de fin peut être la date du début de la ligne suivante ?!

    Merci de votre aide !

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Bonjour et bienvenue sur le Forum Access de DVP.


    Si tu fais le delta et que tu additionnes tes résultats.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Heureux-oli
    Bonjour et bienvenue sur le Forum Access de DVP.


    Si tu fais le delta et que tu additionnes tes résultats.
    Merci Heureux-Oli !!

    Mais je prends mon tableau en exemple, la réponse me donne
    Pascal 15/02/2007 17/02/2007 3
    Pascal 17/02/2007 17/02/2007 0
    Pascal 18/02/2007 19/02/2007 2
    Pascal 19/02/2007 19/02/2007 0

    C'est correct, mais si c'est un tableau comme celui-ci, ça ne fonctionne pas :
    Pascal 15/02/2007 17/02/2007 3
    Pascal 17/02/2007 18/02/2007 1
    Pascal 18/02/2007 19/02/2007 2
    Pascal 19/02/2007 19/02/2007 0
    Ça me donne 6 alors que la personne a travaillé l'équivalent de 5 jours !

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut

    sur DateDiff

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    je suis par sûr à 100% mais tu peux essayer ça
    Code sql : 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
    SELECT Horaires.Nom, Horaires.Date1, Horaires.Date2, [Date2]-[Date1]+1 AS NbJours, 
      DCount("*","Horaires","Nom='" & [Nom] & "' AND [Date1]>#" & Format([Date1],"mm/dd/yyyy") & "# AND [Date1]=#" & Format([Date2],"mm/dd/yyyy") & "#") AS Correction
    FROM Horaires
    ORDER BY Horaires.Nom, Horaires.Date1, Horaires.Date2;
     
    --Ce que ça donne sur ma table :
    Nom	Date1		Date2		NbJours	Correction
    Jean	15/02/2007	17/02/2007	3	1
    Jean	17/02/2007	18/02/2007	2	1
    Jean	18/02/2007	19/02/2007	2	1
    Jean	19/02/2007	19/02/2007	1	0
    Jean	20/02/2007	20/02/2007	1	0
     
    Pascal	15/02/2007	17/02/2007	3	1
    Pascal	17/02/2007	17/02/2007	1	0
    Pascal	18/02/2007	19/02/2007	2	1
    Pascal	19/02/2007	19/02/2007	1	0
    La somme des NbJours-Correction donne le résultat.

    Si tu dois faire ta requête sur une plage de date données ça ne fonctionne pas car
    Dcount(...) scrute toute la table.

    A+

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    J'y ai un peu réfléchi, la façon dont tes données sont dans la table, on n'y arrivera pas.
    Il faudrait tenir compte de l'heure.

    Si je travaille 1 jour, du 17 au 17.
    Si je travaille 2 jours du 17 au 18 ou encore du 17 au 19
    Le 17 de 08:00 à 17:00 -> 1 jour
    du 17 de 08:00 au 18 17 :00 -> 2 jours
    du 17 de 08:00 au 19 08:00 -> 2 jours
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Voici ma solution
    J'ai préparé le query suivant :

    SELECT dbo_legheader.lgh_driver1, DateValue([lgh_startdate]) AS Jour1, DateValue([lgh_enddate]) AS JourFin, IIf([Jour1]+1>[JourFin],0,DateValue([lgh_startdate]+1)) AS jour2, IIf([jour1]+2>[jourfin],0,DateValue([lgh_startdate]+2)) AS jour3, IIf([jour1]+3>[jourfin],0,DateValue([lgh_startdate]+3)) AS jour4, IIf([jour1]+4>[jourFin],0,DateValue([lgh_startdate]+4)) AS jour5, IIf([jour1]+5>[jourfin],0,DateValue([lgh_startdate]+5)) AS jour6, IIf([jour1]+6>[jourfin],0,DateValue([lgh_startdate]+6)) AS jour7
    FROM dbo_legheader
    WHERE (((dbo_legheader.lgh_driver1)="FLEURM" Or (dbo_legheader.lgh_driver1)="fortij" Or (dbo_legheader.lgh_driver1)="levayf" Or (dbo_legheader.lgh_driver1)="rouleb" Or (dbo_legheader.lgh_driver1)="royric" Or (dbo_legheader.lgh_driver1)="vielbe") AND ((DateValue([lgh_startdate])) Between #1/21/2007# And #2/17/2007#))
    ORDER BY dbo_legheader.lgh_driver1, DateValue([lgh_startdate]);
    Ça me donne un tableau avec toutes les dates travaillés par employés (en supposant qu'il ne travaille pas plus que 7 jours en lignes). Par le suite je place le tout dans une table à l'aide de 7 quety ajout, et je combine un cummule le tout !!

    Merci de votre aide !! Ça m'a permit d'avancer dans la solution !

    Pascal

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

Discussions similaires

  1. [Dates] Calcul du nombre de jours entre 2 dates
    Par FredLam dans le forum Langage
    Réponses: 8
    Dernier message: 30/11/2011, 19h41
  2. Calcul du nombre de jours entre 2 date
    Par djso3 dans le forum Général VBA
    Réponses: 3
    Dernier message: 06/11/2009, 09h29
  3. [V5] (BO v5.1.3) Calcul du nombre de jours entre 2 dates
    Par POLUX13 dans le forum Deski
    Réponses: 4
    Dernier message: 09/02/2009, 22h17
  4. [Dates] calcul du nombre de jours entre 2 dates
    Par lilie62 dans le forum Langage
    Réponses: 5
    Dernier message: 22/11/2006, 15h55
  5. calcule du nombre de jours entre 2 dates
    Par nazimb dans le forum ASP
    Réponses: 4
    Dernier message: 28/09/2004, 15h22

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