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

IHM Discussion :

somme d'heures dans un sous formulaire


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut somme d'heures dans un sous formulaire
    Bonjour à tous

    j'ai eu des éléments de réponse sur ce forum mais pas tout.

    Mon cas.

    je dois faire le total d'heures d'intervention par client.

    -Etape 1, je fais une requête qui sera la base du sous form intervention . Dans cette requête je fais un calcul entre l'heure de fin et de début d'intervention.
    Nom client HoraireDebut HoraireFin addition_heure: Format(DiffDate("n";[HoraireDebut];[HoraireFin])/1440;"Heure, abrégé").
    tout fonctionne bien, j'ai le résultat par ligne sous ce format 04:30


    -Etape 2 je fais un form Client très classique et un sous form intervention très classique aussi.

    je me positionne dans le pieds de mon sous form et j'écris avec une zone de texte =somme([addition_heure]) et encore ici c est très habituel et là j'ai un message d'erreur. Je précise que j'ai testé cette formule avec des chiffres classiques et pas de soucis.

    Je pense que le problème vient du format heure

    avez vous une idée?

    Merci à tous.

    Steph

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    Je précise que j'ai testé cette formule avec des chiffres classiques et pas de soucis.
    tu donnes une piste de la solution dans ta remarque ...
    le fait de formater l'heure dans la requête la transforme en texte et la rend donc inutilisable pour un calcul, il faut enlever le format dans la requête et le mettre dans le sous-formulaire
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    ok merci à toi,

    je regarde cette histoire de format.

    steph

  4. #4
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    bon

    j ai enlevé le formatage dans ma requète, voici le champs de calcul d'heures:

    addition_heure: (DiffDate("n";[HoraireDebut];[HoraireFin])/1440)

    mais ça me donne un résultat pas top :

    exemple: 0,104166666666667

    et dans mon sous form que dois je changer pour remettre le bon format lisible ?

    Nom : Capture2.PNG
Affichages : 206
Taille : 6,3 Ko

    Nom : Capture1.PNG
Affichages : 204
Taille : 5,3 Ko

    merci de votre aide

    steph

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    j ai enlevé le formatage dans ma requète, voici le champs de calcul d'heures:

    addition_heure: (DiffDate("n";[HoraireDebut];[HoraireFin])/1440)

    mais ça me donne un résultat pas top :

    exemple: 0,104166666666667
    oui, c'est bien ainsi qu'est stocké l'heure dans Access et la date aussi, mais dans la partie entière du nombre, les décimales étant pour l'heure.
    Mais pour qu'un humain puisse la lire facilement il faut la formater, mais il faut le faire qu'en dernier lieu, c'est à dire après les calculs.
    D'ailleurs, si tu exécutes ceci dans la fenêtre d'exécution de VBA:? format(0.104166666666667,"Short time") tu obtiendras 02:30

    Tu dois utiliser la propriété Format de ton contrôle (le champ de la requête dans le formulaire), utilises "Heure, abrégé" comme tu l'as fait dans ta requête

    Autre possibilité pour ton total (Texte15): tu formates directement ton résultat dans la propriété source de ce contrôle:
    = Format(Somme([addition_heure]);"Heure, abrégé")
    Par contre, si le total dépasse 0.999994 (23:59:59) cela veut dire que ton nombre d'heures dépasse 24h et il faudra en tenir compte dans ton application car tout nombre entier représentera un nombre de jours:
    ?format(1.04097222222222,"short time") donnera 00:59 alors qu'en réalité c'est 1 jour et 59 minutes
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    merci tee_grandbois

    je teste ça et si ça va pas , je reviens vers toi.

    steph

  7. #7
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    salut tee_grandbois


    tout fonctionne bien.

    et bien sûr tu as raison, pour les sommes d'heures supérieures à 24 h, je n'ai pas le bon résultat.

    Là j ai l impression qu'il y a un mystère car après pas mal de recherches sur le net, je n'ai pas trouvé de réponses à ce problème qui doit pourtant être fréquent.

    As tu une idée?

    Merci.

    Steph

  8. #8
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    A tester au format Heure complète
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format(([DateFin]-[DateDebut])*24;"#") & Format(([DateFin]-[DateDebut]);":nn")
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  9. #9
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    bonjour,

    je met ça où? c est mon contrôle somme qui est dans mon sous formulaire qui pose problème.

    Merci.

    Steph

  10. #10
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Re,
    Dans le sForm, Source controle de addition_heure, placez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format(([DateFin]-[DateDebut])*24;"#") & Format(([DateFin]-[DateDebut]);":nn")
    Dans le pied de sForm Texte15, placez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format((Somme([DateFin]-[DateDebut]))*24;"#") & Format((Somme([DateFin]-[DateDebut]));":nn")
    Dans le form principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[nomdusForm].[Formulaire]![Texte15]
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  11. #11
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    Merci hyperion13,

    je test çà.

    Steph

  12. #12
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    salut hyperion13,

    j ai testé , ça fonctionne mais il y a des erreurs dans certains totaux. j ai par exemple pour un cas 41h au lieu de 42h.

    j ai testé sur des cas et je retrouve certaines erreurs mais pas toujours.

    Il doit y avoir un problème quelque part.

    Merci si tu as une idée.

    Steph

  13. #13
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Un exemple d'erreur !
    Sinon faisons autrement
    Dans le sForm, Source controle de addition_heure, placez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Int([DateFin]-[DateDebut]) & " jour " & Format([DateFin]-[DateDebut]; "hh:nn:ss")
    Dans le pied de sForm Texte15, placez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Int(Sum([DateFin]-[DateDebut])) & " jour " & Format(Sum([DateFin]-[DateDebut]); "hh:nn:ss")
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  14. #14
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    Merci à toi

    voilà ce que ça donne:Nom : écran horaires.PNG
Affichages : 154
Taille : 19,4 Ko


    le total est bon puisque ça fait 46 h donc 1 jour et 22 h effectivement.

    Visiblement il n' y a pas de possibilités d'avoir directement 46h ou 120h ou 250h .

    Je vais me contenter de ça, c est déjà très sympa de m'avoir aidé.

    steph

  15. #15
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Faisons autrement
    Dans le sForm, Source controle de addition_heure, placez
    Dans un module standard, placez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function Duree(ByVal pInput As Date) As String
        Dim lngDays As Long
        Dim lngMinutes As Long
        Dim lngHours As Long
        Dim strReturn As String
     
        lngDays = Int(pInput)
        lngHours = Hour(pInput)
        lngMinutes = Minute(pInput)
     
        lngHours = lngHours + (lngDays * 24)
        strReturn = lngHours & " h " & Format(lngMinutes, "00")
        Duree = strReturn
    End Function
    Dans le pied de sForm Texte15, placez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Duree(Somme([DateFin]-[DateDebut]))
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  16. #16
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    merci hyperion13

    le total n est pas toujours bon.

    je crois qu on va rester sur ta solution de 1 jour 2:00 qui fonctionne bien même si pas top mais bon...


    Steph

  17. #17
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Euh ...
    Je viens de reprendre tes valeurs données, le résultat est bon, 46 heures au total !
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  18. #18
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2014
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2014
    Messages : 49
    Points : 17
    Points
    17
    Par défaut
    Autant pour moi hyperion13.

    et merci pour ton fichier test.

    Merci encore.

    Steph

Discussions similaires

  1. [LibreOffice][Base de données] Somme de valeurs dans un sous-formulaire.
    Par Papy Octet dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 14/12/2016, 15h41
  2. [AC-2010] Problème de somme dans un sous-formulaire
    Par superloupiot dans le forum IHM
    Réponses: 5
    Dernier message: 01/04/2013, 13h24
  3. calcul de somme dans un sous formulaire
    Par david29170 dans le forum IHM
    Réponses: 4
    Dernier message: 30/05/2011, 14h26
  4. [formulaire] Somme dans un sous formulaire
    Par Ancy91 dans le forum IHM
    Réponses: 3
    Dernier message: 18/09/2007, 17h31
  5. cacul d'une somme dans un sous formulaire
    Par T'chab dans le forum IHM
    Réponses: 5
    Dernier message: 22/01/2007, 14h17

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