Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2008, 11h30   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
Par défaut Comment calculer une durée ?

Bonjour à tous

Pouvez vous me dire comment faire calculer une durée à Access à partir des champs "Heure début" et "Heure fin" ? ainsi mon SAV saura son temps consacré au différentes demandes.

Merci !
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 12h51   #2
Rédacteur/Modérateur
 
Avatar de Jeannot45
 
Homme Jean BALLAT
Inscription : octobre 2004
Messages : 2 856
Détails du profil
Informations personnelles :
Nom : Homme Jean BALLAT
Âge : 63
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : octobre 2004
Messages : 2 856
Points : 5 220
Points : 5 220
Bonjoour,

Ou veux tu afficher la durée : sur un formulaire ou un état ou dans une requete ?

1) Formulaire ou Etat : tu insères un controle de type Zone de Texte indépendant. Dans la propriété ControleSource tu écris

Code :
= [Heure Fin] - [Heure Debut]
2) Dans une requete : en mode création de la requete, tu crées un champ calculé

Code :
Duree:[Heure Fin] - [Heure Debut]
Dans les deux cas tu affectes un format Horaire sur le champ calculé
__________________
Jeannot

Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA

Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
Jeannot45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 14h34   #3
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
Merci pour ta réponse Jeannot45

j'ai essayé et 2 autres questions en découlent :
- le calcul que me fait access n'est pas exact : avec 14:12 et 14:52 il me donne une durée de 0,02777778 je ne sais pas pourquoi

- cette formule que tu m'as donné fonctionne-t-elle avec une insertion automatique de l'heure ?

merci
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 14h54   #4
Membre habitué
 
Homme Eric FAVEREAU
Développeur .NET
Inscription : mai 2003
Messages : 97
Détails du profil
Informations personnelles :
Nom : Homme Eric FAVEREAU
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2003
Messages : 97
Points : 108
Points : 108
Il suffit de formater le résultat en heure minute.

Et pour ta deuxième question, la réponse est oui
ptitdragon_eric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 15h19   #5
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
Bonjour ptitdragon_eric,
peux tu m'en dire plus sur les manipulations pour obtenir ce formatage et éventuellement pour faire fonctionner avec l'insertion de l'heure automatique stp ?

Merci
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 17h05   #6
Membre du Club
 
Inscription : février 2008
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 136
Points : 56
Points : 56
Salut!
Quand tu as:
"le calcul que me fait access n'est pas exact : avec 14:12 et 14:52 il me donne une durée de 0,02777778"
c'est correct!!! car égal à 40mn, soit 0.02777778 jour!
Si tu le multiplie par 60, tu l'aura en heures... ([Heure Fin]-[Heure Début])*60)
Si tu le multiplie 60 par 24, tu l'as en jours! ([Heure Fin]-[Heure Début])*60*24)


Pour ce qui est de l'heure automatique, dans ta table, tu mets Date() en valeur par défaut.

Bon courage!
gberthier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2008, 17h36   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 482
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 482
Points : 7 577
Points : 7 577
Personelement je préfère utiliser DateDiff qui te permets de choisir l'unité du résultat (je travaille généralement en secondes) puis après je divisie par 3600 pour avoir les heures et 60 pour avoir les minutes.

Mais tu peux aussi faire ainsi :

Code :
1
2
3
4
5
6
7
8
9
10
 
dim result as string
dim hh as single
dim mm as single
dim ss as single
 
hh=datediff("h",dateDeb, datefin)
mm=datediff("n",dateDeb, datefin)-(60*hh)
ss=datediff("n",dateDeb, datefin)-(60*mm)-(3600*hh)
result=cstr(hh) & ":" & format$("00",mm) & ":" &  format$("00",ss)
Je trouve cela plus clair que de jouer avec des fractions de jour.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/02/2008, 14h54   #8
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
bonjour

Je suis finalement passée par "propriétés" et "masque de saisie", j'ai demandé le format 00:00 et il accepte.

Par contre je ne parviens toujours pas à utiliser l'insertion automatique pour mon calcul. Le top serait que quand la personne commence le formulaire l'heure s'inscrive, et qu'en fin de formulaire la nouvelle heure s'inscrive également. ainsi access pourrait calculer la durée de l'appel et de son traitement.

Est-ce possible ?

Merci
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 16h09   #9
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 236
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 236
Points : 9 919
Points : 9 919
Envoyer un message via Skype™ à Domi2
Bonjour,

Si je comprend, l'opérateur prend l'appel...

==> ouvre le formulaire 'ici on veut savoir l'heure

==> répond et ferme le formulaire ? 'ici, on veut savoir l'heure

2 champs, avec les noms à adapter :

txtHeureDebutAppel et txtHeureFinAppel

Ensuite, sur l'événement Sur ouverture de ton formulaire

Me.txtHeureDebutAppel.Value = Now()

Sur l'événement Sur fermeture

Me.txtHeureFinAppel.Value = Now()

A tester...

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/02/2008, 16h09   #10
Membre du Club
 
Inscription : février 2008
Messages : 136
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 136
Points : 56
Points : 56
Salut
Si tu as une table Heure Début et une table Heure Fin, il doit y avoir moyen de faire une mise à jour de la table via une macro du type SelectionnerObjet, Actualiser...
gberthier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 15h44   #11
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
Bonjour à tous,

j'ai finalement adopté la solution de Domi2 qui fonctionne parfaitement, j'ai l'heure de début dans 1 premier champs et celle de fin dans un autre. Toutefois je ne parviens plus du coup à faire calculer une durée.. je comprends pas pourquoi.
voila ce que j'ai fait : =[txtHeureFinAppel]-[txtHeureDebutAppel] ms non... j'ai aussi essayé avec =[Me.txtHeureFinAppel]-[Me.txtHeureDebutAppel], non plus...

Une idée ????

merci
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h35   #12
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 236
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 236
Points : 9 919
Points : 9 919
Envoyer un message via Skype™ à Domi2
Bonjour,

Tu fais ce calcul dans un champ indépendant dont la source est :

Code :
=[txtHeureFinAppel]-[txtHeureDebutAppel]
?

Qu'obtiens-tu comme résultat ?

Un champ vide ?

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 17h04   #13
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
bonjour,

il me marque tout simplement "#Erreur"
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 17h14   #14
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 236
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 236
Points : 9 919
Points : 9 919
Envoyer un message via Skype™ à Domi2
Re,

Citation:
=[txtHeureFinAppel]-[txtHeureDebutAppel]
devrait être correct.

Vérifie bien la propriété "Nom" des deux zones de textes sur lesquels tu fais ton calcul.

Elles s'appellent bien respectivement "txtHeureFinAppel" et "txtHeureDebutAppel" ?

De plus, la propriété "Source" (le nom du champ) de ces zones ne doit pas avoir le même libellé que la propriété "Nom".

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 13h14   #15
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
BONJOUR

à priori les champs s'appellent bien txtHeureDebutAppel et txtHeureFinAppel, j'ai envie de recommencer mes champs indépendants pour leur remettre l'affichage de l'heure et ainsi calculer la durée.
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 14h12   #16
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 236
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 236
Points : 9 919
Points : 9 919
Envoyer un message via Skype™ à Domi2
Bonjour,

Citation:
j'ai envie de recommencer mes champs indépendants pour leur remettre l'affichage de l'heure et ainsi calculer la durée.
Là, je suis plus trop sûr de suivre.

Ci-joint, une petite base au format 2000 qui t'aidera peut-être à mieux cerner ton problème.

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 15h56   #17
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
Re Domi2,

Merci pour le doc.
Mon problème vient peut être du fait que j'ai demandé l'éxécution de l'évènement sur "perte focus" ? je croisque ça n'est pas ce que tu as fait, toi tu as créé 1 bouton fermé qui éxécute le code.

il faut que j'en fasse 1 également

Ptite Nanou
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2008, 16h42   #18
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 236
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 236
Points : 9 919
Points : 9 919
Envoyer un message via Skype™ à Domi2
Re,

Citation:
il faut que j'en fasse 1 également
Ca, je ne peux pas décider pour toi

La petite base que je t'ai envoyée n'est qu'un "condensé" de la discussion.

Tu as maintenant les codes pour alimenter automatiquement tes champs de début et de fin d'appel et tu peux constater que la syntaxe de la source du champ calculé de la durée est correcte.

Maintenant, à toi de voir comment tu peux (tu dois...) faire pour que tes champs s'alimentent automatiquement.

En clair, quels événements vas-tu utiliser...

Clic sur des boutons, Sur ouverture du formulaire, Sur libération du formulaire, perte du focus, tu as l'embarras du choix...

Sauf qu'il faut que cela reste pratique et convivial pour tes utilisateurs...

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2008, 12h28   #19
Invité régulier
 
Inscription : novembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : novembre 2007
Messages : 37
Points : 6
Points : 6
bonjour

ça marche pas..... je comprends pas, ton fichier fonctionne, mais mes collègues ne souhaitent pas de boutons donc juste 1 champs qui calcule la durée en arrivant dessus (GotFocus il me semble)

donc, ma formule prend bien les noms "txtHeureDebutAppel" et "txtHeureFinAppel", alors mon problème vient-il du fait que mon code de début et fin d'appel donne aussi la date, puis-je n'avoir que l'heure en automatique ? Cela simplifierait peut être le calcul de durée ??


HELP !!!!!!!!
PtiteNanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2008, 13h29   #20
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 236
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 236
Points : 9 919
Points : 9 919
Envoyer un message via Skype™ à Domi2
Bonjour,

Citation:
ça marche pas.....
Tu n'es pas très explicite... Qu'est ce qui ne "fonctionne" pas ?

Peux-tu décrire un peu le processus ?

Quelles actions acomplissent les utilisateurs ?

Comment "récupères-tu" l'heure de début d'appel ?

Idem pour la fin d'appel ?

Et comment veux-tu calculer la durée ?

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h11.


 
 
 
 
Partenaires

Hébergement Web