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 :

heure additionner soustraire heure dans état.


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 39
    Points
    39
    Par défaut heure additionner soustraire heure dans état.
    Bonjour a tous

    je calcul par une requete dans un champ "addition_heure_bis" le temps en heure et minutes qui sépare pour une journée donnée une heure de début et une heure de fin.
    cela marche très bien
    addition_heure_bis: Format(DiffDate("n";[heure_debut];[heure_fin])/1440-(8/24);"Heure, abrégé")


    Par contre impossible de faire la somme de ce champ dans l'état que j'ai attaché à cette requete.
    Voici le champ calculé dans l'état :
    =Somme([addition_heure_bis])
    j'ai un message d'erreur du type "syntaxe non conforme ou capacité de calcul trop elevée...."

    Comment faire ?
    Merci de votre aide

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    Par la magie de l'instruction format le résultat est un texte, donc non cumulable. Il faut cumuler les écarts de temps et le formater ensuite

    Par ailleurs DiffDate("n";[heure_debut];[heure_fin])/1440 est égal à [heure_fin]-[heure_debut] me semble-t-il...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par nico84 Voir le message
    Bonjour,

    Par la magie de l'instruction format le résultat est un texte, donc non cumulable. Il faut cumuler les écarts de temps et le formater ensuite

    Par ailleurs DiffDate("n";[heure_debut];[heure_fin])/1440 est égal à [heure_fin]-[heure_debut] me semble-t-il...
    bonjour,
    merci pour ton retour.
    Mais comme je suis pas doué je comprends pas tout.
    comment cumuler avant de formater ?
    Pour le "/1440" je suis obligé de le faire sans quoi le résultat donne 00:00 pour tous mes calcule.
    Si tu peu m'aider d'avance merci

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Bonjour à vous deux

    Je me permet de préciser la pensée de nico84:

    Il faudrait donc réécrire le champ de base dans la requête comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    addition_heure_bis: ([heure_fin]-[heure_debut])-(8/24)
    et par exemple dans l'état définir le champ comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    = Format(Somme([addition_heure_bis]);"Heure, abrégé")
    Et si le total des heures dépasse 24, il faut utiliser la fonction de la faq :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =HeureSup24(Somme([addition_heure_bis]))
    Fonction de la faq a copier dans un module indépendant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function HeureSup24(dtm As Date) As String
        ' Calcule le nombre d'heures
        HeureSup24 = DateDiff("h", 0, dtm)
        ' On ajoute les minutes et les secondes
        HeureSup24 = HeureSup24 &  Format(dtm, ":nn:ss")
    End Function
    Cdlt,
    Denis
    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

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Pour être plus pédagogique, il faut bien garder en tête que les dates sont en réalité des nombres réels où la partie entière est le nombre de jours depuis peu importe quand et la partie décimale l'avancement dans la journée. Les calculs se font donc entre réels et en jours comme le fait user que je salue au passage. Si on multiplie par 24 ils se transforment en heures et par 24*60 en mn mais sinon les différentes options de la fonction format permettent de traiter la plupart des cas.

    Access les formate plus ou moins automatiquement pour les afficher et les convertit à chaque saisie mais c'est le programmeur qui décide des calculs qu'il souhaite faire avant !

    Pour finir, si heure_fin et heure_debut sont des dates, heure_fin-heure_debut contient une durée en (fraction de) jours et je vois mal à quoi sert -8/24 (soit -8h) ?
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

Discussions similaires

  1. calcul heure dans états
    Par marcmarc150 dans le forum IHM
    Réponses: 5
    Dernier message: 14/03/2013, 09h52
  2. Additionner des heures notées dans un fichier .txt
    Par grundraisin dans le forum VBScript
    Réponses: 9
    Dernier message: 24/09/2009, 15h03
  3. vb6:Inscrire la date et l'heure de l'ordinateur dans des textbox
    Par flav66 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2006, 12h37
  4. Récupérer l'heure d'un timsestamp dans un select ?
    Par magdalena dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/08/2006, 10h24
  5. [CR] Additionner des heures
    Par sbis dans le forum Formules
    Réponses: 4
    Dernier message: 22/03/2004, 15h34

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