Bonjour,
Je suis en train de faire une fonction VBA qui me retourne le nombre d'heures entre 2 dates (en supprimant les week-end et jours fériés) pour ensuite insérer ce nombre dans ma table TEST.
Pour cela, j'ai une table Jours_travail où j'ai toutes les dates de 2012 à 2017 et à coté une colonne qui me dit si c'est un jour travaillé ou non. Voici la composition de ma table Jours_travail:
Jour (type date) | Jours_travailles (type text)
01/01/2012 | Non
02/02/2012 | Oui
Je sais que j'ai un problème de syntaxe dans ma requête Nb_jours déjà (mais j'arrive pas à l'écrire correctement)
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
17
18
19
20
21
22
23
24
25
26
27
28
29 Function Resultat(Date1 As Date, Date2 As Date) As Integer Dim DifDate1 As Date, DifDate2 As Date Dim Nb_jours As Integer 'Nombre de jours ouvrés entre Date1 et Date2 (récupération du résultat de la requête) Dim Dif_heures As Integer DifDate1 = 0 DifDate2 = 0 Dif_heures = 0 Nb_jours = 0 'Nombre de jours se trouvant entre les 2 dates et multiplication de ce nombre par 10 pour avoir le nombre d'heures travaillées entre les 2 dates Nb_jours = "SELECT COUNT(*) FROM Jours_travail WHERE '" & Date1 & "' < Jour AND '" & Date2 & "' > Jour AND Jours_tavailles = 'Oui'" Dif_heures = Nb_jours * 10 'Calculer le nbre d'heures travaillées pour Date1 et Date2 DifDate1 = DateDiff("h", Hour(Date1), 18) 'Nbr d'heures travaillées le jour de Date1 DifDate2 = DateDiff("h", 8, Hour(Date2)) 'Nbr d'heures travaillées le jour de Date2 'Addition des différents calculs Resultat = Nb_jours + DifDate1 + DifDate2 End Function Sub TEST2() DoCmd.RunSQL ("UPDATE TEST SET `Mes résultats`= Resultat(Demand_Launch_date_Valid, Acknowledge_date_valid);") End Sub
Partager