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

Requêtes et SQL. Discussion :

Requête Heure Durée de travail


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Requête Heure Durée de travail
    J'ai construit une base de donnée où est inscrit des heures de travail par exemple Monsieur X a travaillé de 08:00 à 12:30; Madame Y a travaillé de 10:30 à 11:30. Je désire savoir par l'intermédiaire d'une requête qui a travaillé entre 10:00 et 12:00 et la durée de travail dans ce laps de temps.
    J'ai réussi à déterminer qui a travaillé entre 10:00 et 12:00 mais je n'ai pas réussi à calculer la durée de travail dans ce laps de temps. La fonction "Si alors" existant dans Excel serait facile à utiliser mais n'existe pas dans Access.

  2. #2
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut
    Sous Access dans les requetes ou controles tu peux utiliser la fonction IIF(condition, resultat si vrai, resultat si faux) est-ce que ca ne suffirait pas la?

    Sinon un petit calcul:

    Temps travaille dans l'intervalle = finintervalle - debutintervalle - (debuttravail - debutintervalle) - (finintervalle - fintravail)

    Ce qui fait par exemple pour une intervalle de 10h et 12h et un travail entre 10h30 et 11h30:

    temps travaille = (12-10) - (10.5-10) - (12-11.5) = 1h

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Pas entièrement satisfait de la réponse
    Citation Envoyé par Villars
    J'ai construit une base de donnée où est inscrit des heures de travail par exemple Monsieur X a travaillé de 08:00 à 12:30; Madame Y a travaillé de 10:30 à 11:30. Je désire savoir par l'intermédiaire d'une requête qui a travaillé entre 10:00 et 12:00 et la durée de travail dans ce laps de temps.
    J'ai réussi à déterminer qui a travaillé entre 10:00 et 12:00 mais je n'ai pas réussi à calculer la durée de travail dans ce laps de temps. La fonction "Si alors" existant dans Excel serait facile à utiliser mais n'existe pas dans Access.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Essaie un double if then else du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    If début < 10 then
       If fin > 12 then
          temps = 2
       Else 
          temps = fin - 10
       End If
    Else
      If fin > 12 then
          temps = 12 - fin
       Else 
          temps = fin - début
       End If
    End IF

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Slt,

    Oui, pour complèter ce qui a été dit:

    tu créer une fonction que tu utilise dans ta requête:

    Donc je suppose que tu as sélectionné les bons horaires, après tu créer la fonction dans 1 module:

    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
     
    Public function Duree_travail(debuttravail  As date,fintravail As Date,debutintervalle As date,finintervalle As Date) As Integer 
     
       if (debuttravail<debutintervalle) Then
     
              if (fintravail<finintervalle) Then
              Duree_travail=DateDiff("n", debutintervalle,fintravail)
              else
              Duree_travail=DateDiff("n", debutintervalle,finintervalle)
              End If
     
       else 
     
              if (fintravail<finintervalle) Then
              Duree_travail=DateDiff("n", debuttravail,fintravail)
              else
              Duree_travail=DateDiff("n", debuttravail,finintervalle)
              End If
     
       End If 
     
    End Function


    et après tu l'utiliste dans ta requête avec le QBE:

    Durée: Duree_travail([debuttravail] ,[fintravail] ,[debutintervalle],[finintervalle])


    Remarque: Le résultat est en minutes, tu n'as qu'a convertir

    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

Discussions similaires

  1. [PR-2007] Multi Projet - Pb de calendrier - durée de travail
    Par FMA02370 dans le forum Project
    Réponses: 0
    Dernier message: 05/01/2012, 10h43
  2. Durée du travail en forfait jours
    Par Mindiell dans le forum Droit du travail
    Réponses: 10
    Dernier message: 07/10/2011, 09h30
  3. Requête qui dure longtemps sans résultat
    Par SALMHSN dans le forum PL/SQL
    Réponses: 13
    Dernier message: 03/05/2011, 12h04
  4. Requête Longue durée sur un Serveur
    Par faressam dans le forum Administration
    Réponses: 3
    Dernier message: 10/07/2008, 09h42
  5. Lancer une requête à heure fixe
    Par antoine1504 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/07/2007, 16h28

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