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 :

ajout temps h:m:s dans état


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Pilote de drone civil Professionnel
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Pilote de drone civil Professionnel

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut ajout temps h:m:s dans état
    Bonjour,

    Télépilote de drone civil dans un cadre professionnel, je viens de créer un carnet de vol (sous access) dans lequel je souhaite faire apparaitre dans l'ÉTAT 2 champs durée formaté h:m:s (>24 heures)
    Si dans l'ÉTAT le champ d'entrée de la durée d'un champ "Duree" ne pose pas de problème, je ne parviens pas au calcul automatique de la durée des vols sous le champ ÉTAT "Total" tel que :

    "B" = "A" puis,
    "C1" = "B" + "A1" puis,
    "C2" = "C1" + "A2" etc...

    Voir image ci-dessous
    Nom : access-ajout-temps.jpg
Affichages : 75
Taille : 8,4 Ko

    sachant que les champs "Durée" sont toujours entrés au clavier (formatage date h:m:s).

    Je vous remercie pour votre aide

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonjour

    Pour pouvoir utiliser des temps > 24h, on peut passer par cette fonction
    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
    Public Function EnHeure(ParTemps As Double, Optional ParSecondesAffichees As Boolean = False)
        Dim VarJours As Long, VarHeures As Long, VarMinutes As Long, VarSecondes As Long
        VarJours = Int(ParTemps)
        ParTemps = (ParTemps - VarJours) * 86400 'nombre de secondes
        VarSecondes = ParTemps Mod 60
        ParTemps = ParTemps - VarSecondes
        VarMinutes = (ParTemps Mod 3600) / 60 ' Minutes
        ParTemps = ParTemps - VarMinutes * 60
        VarHeures = (ParTemps Mod 86400) / 3600 ' Heures
        VarHeures = VarHeures + VarJours * 24
        If IsMissing(ParSecondesAffichees) Or ParSecondesAffichees = True Then
            EnHeure = VarHeures & ":" & Format(VarMinutes, "00") & ":" & Format(VarSecondes, "00")
        Else
            EnHeure = VarHeures & ":" & Format(VarMinutes, "00")
        End If
    End Function
    A copier-coller dans un module, et à utiliser par exemple avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomZone3= EnHeure(NomZone1 + NomZone2, True)

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 412
    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 412
    Points : 19 988
    Points
    19 988
    Billets dans le blog
    66
    Par défaut
    Bonjour,

    Pour compléter, ce qui vient d'être dit :

    Le calcul du total revient a effectuer un cumul ou une somme sur la colonne durée, jusqu'à la ligne concernée :

    Pour cela tu peux utiliser une sous-requête :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select Duree, (select Sum(Duree) from T_Durees T1 where T1.LigneDuree<=T_Durees.LigneDuree) as total
    from T_Duree
    order by LigneDuree

    T_Duree désigne la table source et LigneDuree désigne l'identifiant de cette table.

    Je te laisse utiliser la fonction de titi95 pour le calcul des sommes > 24h

    Cdlt,

Discussions similaires

  1. [AC-2010] Ajouter une image dans état etiquette
    Par petitours dans le forum IHM
    Réponses: 4
    Dernier message: 22/01/2013, 12h55
  2. [Sybase] Temps d'une insertion dans une table
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/02/2005, 10h04
  3. Réponses: 4
    Dernier message: 02/06/2004, 11h19
  4. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41
  5. Ajout de bouton de commandes dans la barre de menus
    Par vanessaf22 dans le forum IHM
    Réponses: 9
    Dernier message: 21/07/2003, 11h38

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