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

VBA Access Discussion :

Soustraction de 2 dates en temps réel


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Soustraction de 2 dates en temps réel
    Bonjour

    L'objectif serait de soustraire 2 dates en permettant de connaitre le temps écoulé à tous les instants
    depuis un départ d'équipement en réparation dont on attend le retour.
    Le champs DateDepartNoria restant figé à la date souhaitée aprés saisie et ensuite le champs DateCeJour
    serait synchronisé sur l'horloge de L'ordinateur servant de compteur déclenché par la mise à jour
    du champs DateDepartNoria et bien sûr pouvant s'appliquer sur l'ensemble des enregistrements précédents
    représentant l'ensemble des équipements dont on attend le retour;

    En résumé pouvoir consulter à chaque intant les différents délais écoulés pour chacun des équipements
    dont on attend le retour

    Dans mon exemple cela ne fonctionne que sur l'enregistrement en cours à un instant donné,le temps écoulé
    restant figé dés lors que l'on sort de l'enregistrement

    Un érudit dans la matiére peut il me trouver une solution.
    Merci.

    Procédures événementielles actuelles appliquées sur MAJ dans le formulaire:

    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
    Private Sub DateDepartNoria_AfterUpdate()
    If IsDate(Me.DateCeJour) And IsDate(Me.DateDepartNoria) Then
    mn = DateDiff("n", Me!DateDepartNoria, Me!DateCeJour)
     jours = Fix(mn / 1440)
     reste = mn - (jours * 1440)
     heures = Fix(reste / 60)
     minutes = reste - (heures * 60)
     Me!DureeAttenteCeJour = jours & " jours " & heures & " heures " & minutes & " minutes "
      End If
    End Sub
     
    Private Sub DateCeJour_AfterUpdate()
    If IsDate(Me.DateCeJour) And IsDate(Me.DateDepartNoria) Then
    mn = DateDiff("n", Me!DateDepartNoria, Me!DateCeJour)
     jours = Fix(mn / 1440)
     reste = mn - (jours * 1440)
     heures = Fix(reste / 60)
     minutes = reste - (heures * 60)
     Me!DureeAttenteCeJour = jours & " jours " & heures & " heures " & minutes & " minutes "
     End If
     End Sub
    CONSTITUTION DE LA TABLE

    N°Equipements TEXTE
    DateDepartNoria DATE/HEURE (dans FM procedure événementielle aprés MAJ)
    DateCeJour DATE/HEURE avec valeur par defaut : Maintenant() (dans FM procedure événementielle aprés MAJ)
    DureeAttenteCeJour TEXTE

  2. #2
    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
    au lieu de mettre la date du jour, indiquer la durée avec un champ Texte
    la table serait mise à jour par le Timer du formulaire , toutes les 10 mn par exemple (timerinterval = 600000), une requete serait lancer toutes les 10mn qui mettrait le champ durée ou délai à jour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Form_Timer()
     DoCmd.OpenQuery ("reqCalculDelais")    'mise à jour délais
     Me.Requery                                      'mise à jour des données du formulaire
    End Sub
    la requete ressemblerait à cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE NomTable SET NomTable.delai = Fix(DateDiff("n",[jour],Now())/1440) & "j " & Format$((DateDiff("n",[jour],Now())-(Fix(DateDiff("n",[jour],Now())/1440)*1440))/1440,"hh:nn:ss");
    les éléments en rouge sont à adapter

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut RE SOUSTRACTION 2DATES EN REEL
    Bonjour helas

    Je te remercie de ton aide et je suis encore un néophite et reclame ton aide.
    Impossible de valider la RQ SQL, le message est le suivant : imposible d’introduire après
    FROM suivi d’un ; des données !!!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.lDateDepartNoria, Table1.DureeAttenteCeJour
    FROM Table1;
    UPDATE Table1 SET Table1.DureeAttenteCeJour = Fix(DateDiff("n",[DateDepartNoria],Now())/1440) & "j " & Format$((DateDiff("n",[DateDepartNoria],Now())-(Fix(DateDiff("n",[DateDepartNoria],Now())/1440)*1440))/1440,"hh:nn:ss");
    Je dois positionner le CODE suivant sur le champs DureeAttenteCeJour en procédure évenementielle sur MAJ je présume !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_Timer()
     DoCmd.OpenQuery ("req requete1")    'mise à jour délais
     Me.Requery                                      'mise à jour des données du formulaire
    End Sub
    A+

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Citation Envoyé par campana Voir le message
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.lDateDepartNoria, Table1.DureeAttenteCeJour
    FROM Table1;
    UPDATE Table1 SET Table1.DureeAttenteCeJour = Fix(DateDiff("n",[DateDepartNoria],Now())/1440) & "j " & Format$((DateDiff("n",[DateDepartNoria],Now())-(Fix(DateDiff("n",[DateDepartNoria],Now())/1440)*1440))/1440,"hh:nn:ss");
    ...
    Je n'ai regardé en détail cette discussion mais ... d'où sors-tu cette partie SELECT FROM... avant ton update??? helas n'a mentionné qu'un UPDATE....
    Le message est logique... ton code SQL correspond à deux requêtes un SELECT; puis un UPDATE mises bout à bout.

    Commences par enlever la partie avant le UPDATE...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut FINALISER SOUSTRADATES
    Bonjour helas et mout 1234

    Je vous remercie c'est génial ca marche;
    Pour finaliser il resterait un détail à modifier
    Le champs actuelle DureeAttenteCeJour du formulaire intègre à la fois les jours restants et l'horloge
    J'aimerais 2 champs distincts

    un champs :

    DureeAttenteCeJour : jours heures minutes (restants) ( donc heures minutes en + )

    un autre champs par exemple :

    Horloge : horloge de l'ordinateur


    Y-a-t-'il une solution simple en modifiant la requête SQL
    ou autre solution.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Table1 SET Table1.DureeAttenteCeJour = Fix(DateDiff("n",[DateDepartNoria],Now())/1440) & "j " & Format$((DateDiff("n",[DateDepartNoria],Now())-(Fix(DateDiff("n",[DateDepartNoria],Now())/1440)*1440))/1440,"hh:nn:ss");
    Je vous remercie

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

Discussions similaires

  1. Date et heure en temps réel sur une bande noire !
    Par cincap dans le forum Général JavaScript
    Réponses: 23
    Dernier message: 15/02/2014, 23h41
  2. Réponses: 8
    Dernier message: 10/01/2014, 11h52
  3. Affichage de la date en temps réel
    Par Jiyuu dans le forum Tkinter
    Réponses: 5
    Dernier message: 15/04/2008, 20h14
  4. Réponses: 4
    Dernier message: 16/06/2006, 04h29

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