Bonjour,
Voilà, je me suis inspiré d’une fonction permettant de calculer le nombre de jours ouvrables entre 2 dates, mais, lorsque je l’adapte à ma requête, elle me renvoie #erreur dans mon champ.
Quelqu’un peut il me corriger ce qui ne va pas ?
Je débute dans les fonctions et je souhaite comme vous, progresser.
Merci de votre aide
Description :
5 champs dans une requête :
[nom];[prénom];[date ar];[date];[différence]=> qui me calcul le nombre de jours écoulés entre [date ar]=>qui est toujours antérieur à la date du jour et date
Mon champ crée faisant appel à ma fonction :
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
30
31
32
33
34
35
36
37
38 Function NbreJoursOuvrables(ByVal dhDateDébut As Date, ByVal dhDateFin As Date) As Integer ' Objectif: Compte le nombre de jours ouvrés entre deux dates (exclusion des weekends/jours fériés). ' à l 'aide d'une table des jours fériés. ' Paramètres en entrée: dhDateDébut = [Date AR] ' Date de départ de l'intervalle de temps désiré au format européen entre guillemets dhDateFin = Date ' Date de fin de l'intervalle de temps désiré au format européen entre guillemets. ' (les dates seront inversées si nécessaire) Dim intDiffJours As Integer Dim intSoustraction As Integer Dim rst As Recordset, strRubrique As String Set rst = CurrentDb.OpenRecordset("tblJoursFériés", DAO.dbOpenDynaset) strRubrique = "DateJourFérié" ' Test de validité des dates If IsNull(dhDateDébut) Or IsNull(dhDateFin) Then NombreJoursOuvrables = 0 Exit Function ElseIf Not IsDate(dhDateDébut) Or Not IsDate(dhDateFin) Then NombreJoursOuvrables = 0 Exit Function ElseIf dhDateDébut > dhDateFin Then ' Inversion des dates si nécessaire. Dim dhTemp As Date dhTemp = dhDateDébut dhDateDébut = dhDateFin dhDateFin = dhTemp End If ' Calcul de la différence en jours entre les deux dates intDiffJours = dhDateFin - dhDateDébut + 1 ' Soustraction des samedis et dimanches. Algorithme: Calcul du nombre de semaines ' entre les deux dates et multiplication de la différence par 2. intSoustraction = (DateDiff("ww", dhDateDébut, dhDateFin) * 2) ' Il faut maintenant soustraire le total des jours fériés indiqués par la table intSoustraction = intSoustraction + CompteJoursFeriés(rst, strRubrique, _ dhDateDébut, dhDateFin) NbreJoursOuvrablesTbl = intDiffJours - intSoustraction End Function
jours: NbreJoursOuvrables([Date Ar];[date])
Partager