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 :

Soustraction de 2 dates


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Soustraction de 2 dates
    Bonjour à tous!
    Avec une requete, je souhaiterai afficher un calcul de différence de 2 dates.
    Je m'explique, dans une table, j'ai les champs heures d'arrivée, heure de départ, et tps sur place. A l'aide d'une requete j'aimerai faire que le tps sur place soit égal a l'heure d'arrivée moins l'heure de départ.

    Merci

  2. #2
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 56
    Points
    56
    Par défaut
    Les dates sont stockées comme des nombres sous access donc tu peut simplement faire une addition ou une soustraction.

    Si tes trois champs du formulaires sont défini en format date (que ce soit horaire ou date), il te suffit d'éxécuter le code suivant dans les actions after_update des deux premiers champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (me.nomchamp1.value <> "" and me.nomchamp2.value <> "") then
    me.nomchamp3.value = me.nomchamp1.value - me.nomchamp2.value 
    end if
    normalement si les formats sont bien défini il te mettra directement la valeur au format date choisi.

    je reste disponilble si ca ne fonctionne pas

    jujusoso

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    niquel
    merci

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    j'essai de faire la meme requete, mais le resultat me laisse perplexe..
    dans ma table j'ai :
    DateDebut -- Format : date, abrégé -- Val par defaut : Maintenant ()
    DateHeureFin -- Format : date, abrégé
    DureePanne -- Date/Heure

    VB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub HeureFin_AfterUpdate()
     
    If (Me.DateFin.Value <> "" And Me.HeureFin.Value <> "") Then
    DateHeureFin = Me.DateFin.Value & " " & Me.HeureFin.Value
    End If
     
    If (Me.DateHeureFin.Value <> "" And Me.DateDebut.Value <> "") Then
    Me.DureePanne.Value = Me.DateHeureFin.Value - Me.DateDebut.Value
    End If
    End Sub
    Dans mon formulaire la seule saisie possible est donc les champs DateFin et HeureFin.
    Pour exemple :
    DateDebut : 26/05/2008 15:23:02 (automatique)
    DateHeureFin : 27/05/2008 13:24:00 (saisie)
    DureePanneJour : 22:00:58 (résultat)

    Jusque la ca marche, mais si l'heure de DateHeureFin est supérieur à l'heure de dateDebut alors ca m'envoi un résultat faux.
    Pour exemple :
    DateDebut : 26/05/2008 15:23:02 (automatique)
    DateHeureFin : 27/05/2008 16:24:00 (saisie)
    DureePanneJour : 31/12/1899 01:00:58 (résultat)

    Quelqu'un a une idée?
    Doit-on definir les dates en valeur absolu?

    Merci d'avance.

  5. #5
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    et en détail :
    nombre de minutes entre les 2 dates
    1 jour faisant 1440 mn (24 * 60), il suffit de faire quelques petits calculs


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If IsDate(Me.DateHeureFin) And IsDate(Me.DateHeureDebut) Then
     mn = DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin)
     jours = Fix(mn / 1440)
     reste = mn - (jours * 1440)
     heures = Fix(reste / 60)
     minutes = reste - (heures * 60)
     Me!DureePanne = jours & " jours " & heures & ":" & minutes
    End If
    ou une seule ligne incompréhensible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If IsDate(Me.DateHeureFin) And IsDate(Me.DateHeureDebut) Then
      Me!DureePanne = Fix(DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin) / 1440) & " jours " & Fix((DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin) - (Fix(DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin) / 1440)) * 1440) / 60) & ":" & (DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin) - (Fix(DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin) / 1440)) * 1440) - (Fix((DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin) - (Fix(DateDiff("n", Me!DateHeureDebut, Me!DateHeureFin) / 1440)) * 1440) / 60) * 60)
    End If

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup helas.
    Ca marche !
    j'avais cru comprendre qu'acces savait soustraire 2 dates tout seul comme un grand.
    Juste une petite remarque concernant ton code :
    Le champ [DureePanne] devient du texte; si on veut le definir en tant que date il suffit d'enlever & " jours" &

Discussions similaires

  1. soustraction entre deux dates en java
    Par zekabyle dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/04/2007, 12h12
  2. Soustraction entre deux dates
    Par Jayceblaster dans le forum Delphi
    Réponses: 8
    Dernier message: 17/02/2007, 13h10
  3. Réponses: 8
    Dernier message: 29/09/2006, 18h09
  4. Soustraction entre deux dates
    Par franculo_caoulene dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/01/2006, 10h59
  5. [Date] Soustraction de deux dates ?
    Par nesbla dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 29/03/2004, 11h54

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