|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour,
Mon activité court de 8 à 20H => 365 jours/an et mes délais d'interventions techniques contractuels sont de 4h. Dans ma BDD, j'ai réalisé une requête qui me calcule des délais d'interventions, moyennes... Les calculs sont OK tant que la date de la demande d'intervention, l'intervention elle même, les heures de début et de fin se passent le même jour. Dès lors, que la demande d'intervention est faite à 19h et que l'intervention à lieu le lendemain à 10h les calculs sont faux ! Sachant que je ne maitrise pas le "code", quel pourrait être la formule d'heures ouvrées de 8 à 20h ? Thanks for your help !
|
|
|
00
|
|
|
#2 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Salut,
J'ai eu recours par le passé à une fonction VBA un peu du même style que la tienne, bien sur à adapter à ton cas : Code :
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
10
|
|
|
#3 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Je n'ai pas été très explicite en effet, je reprends :
les champs de ma table sont les suivant: Date_demande_d'inter / Heure_demande_inter/ Date_inter / H_Début_inter / H_Fin_inter. Ma requête basée sur cette table qui me sert à calculer mes délais d'interventions est la suivante: Délais_inter: [Heure_demande_inter]-[H_Début] <= Temps que j'ai mis pour intervenir. Mon calcul est juste quand tout se passe le même jour et par conséquent l'heure de demande d'inter et toujours inférieure à l'heure de début d'inter. Là où ça se passe pas bien c'est quand la demande d'inter est, par exemple, le 14/10 à 19h et que la date d'inter est le 15/10 à 9H. Dans ce cas l'Heure de demande d'inter est supérieure à l'Heure d'inter. Voilà mon dilemme ... Merci User pour ton bout de code, mais je ne suis pas calé pour l'adapter à mon cas. Encore merci |
|
|
00
|
|
|
#4 | ||||||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Re,
Essai de mettre ce code dans un module VBA : Code :
Code sql :
Ou plus simplement la fonction adapté à ton cas précis : Code :
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||||||
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Je vais potasser tout çà et reviens vers toi...
Merci infiniment User
|
|
|
00
|
|
|
#6 |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Salut,
A noter que, dans le cas de 1/2 heures ou tranche d'heure, pour le calcul des heures tu as cette formule: http://www.developpez.net/forums/d11...s/#post6305302 A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour Denis,
J'ai tenté en vain de mettre en application tes recommandations... Il doit y avoir quelque chose qui m'échappe. => Le module "HeuresOuvrees" est bien crée. Concernant la requête qui fait appel à la fonction "HeuresOuvrees", j'ai procédé comme suit => Voir screen shot . L'erreur retournée est: Fonction HeuresOuvrees non définie dans l'expression. Encore merci pour ta patience |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 050 ![]() |
Bonjour à tous,
Il suffit d'ajouter le nombre d'heures ouvrés entre la date de demande et la date d'intervention en utilisant la méthode DateDiff("d",DateDemande,DateInter). Nombre d'heures écoulées entre la date de demande et la date d'intervention : Code :
DateDiff("d",DateDemande,DateInter) * (1+HeureMax-HeureMin) Code :
HeureInter - HeureDemande + DateDiff("d",DateDemande,DateInter) * (1+HeureMax-HeureMin) Et d'après ton exemple, 9-19 + 1*13=> 3 Heures |
|
|
00
|
|
|
#9 |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Salut,
Concernant la fonction : Dans la fenêtre base de données du cliques sur l'onglet "Modules", Puis tu fais nouveau, et enfin tu copies la fonction dans ce module que tu compiles et enregistres sous 1 nom de ton choix. Et normalement ta requête devrait reconnaître la fonction Question : De quel type sont les champs [Heure_Appel] et [Heure_Deb] ? A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir,
User: 1> j'ai effectivement collé le code dans un module que j'ai nommé "Heuresouvrees". 2> j'ai crée une requête en mode "SQL" ou j'ai également collé ton instruction en prenant soin de bien renommer les champs faisant référence à ma table source... Après quelques recherches, je comprends comment est composé le code, et comment on y fait appel via l'instruction SQL...Hélas ça ne fonctionne pas. Vue de ma "fenêtre", je dirai qu'il manque la "liaison" entre les 2. Mes champs date et heures sont tous au format "Date/Heure". ilank: Dès que j'ai réussi à mettre en application le "code" d'User, je tenterai ta solution. A ce moment là, je risque de solliciter ton aide Merci à vous deux. j'y retourne ! |
|
|
00
|
|
|
#11 |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Renomme ton module en "Module1" par exemple :
Pourquoi nommes-tu ton module de la même manière que ta fonction ?
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
00
|
|
|
#12 | |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Citation:
Disons que je ne voyais pas comment la requête arrivait à pointer sur la fonction ... ![]() Ça fonctionne parfaitement User et je t'en remercie !! Merci infiniment |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com