Maxou le petit
Messages postés47Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention21 mai 2007
-
8 mai 2007 à 06:46
Maxou le petit
Messages postés47Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention21 mai 2007
-
8 mai 2007 à 11:18
Bonjour;
Depuis ce matin je cherche, je ne suis pas un pro d'access mais je n'ai pas le choix !
1) Dans une requête Access, je voudrai calculer le nombre de jours entre deux dates, j'ai trouver une fonction "DiffDate" puis je utiliser cette fonction (Explication nécéssaire car je ne vois pas comment l'utiliser !) ou faut il créer une autre expression ?
2) Le must !!! Si je veux exclure les jours de week-end voir férié comment puis je faire simplement ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 8 mai 2007 à 09:50
Oui, FirstWeekDay, c'est pour déterminer le premier jour de la semaine (en France c'est Lundi, mais dans d'autres Pays, c'est Dimanche), et FirstWeek, c'est pour déterminer la première semaine à prendre en compte (soit donc depuis le 1er jan, soit depuis le premier Lundi de l'année)
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 8 mai 2007 à 10:21
Bonjour à tous
Le petit code ci-dessous te montre l'utilisation de Weekday (+jours fériés).
Msgbox NbreJoursMois(05,2007, strListe)
Function NbreJoursMois(strMois, strAnnee, strListe)
Select Case (strMois)
'Avril, Juin, Septembre, Novembre
Case 4, 6, 9, 11
NbreJoursMois = 30
'Février
Case 2
'Si divisible par 400 alors bisextile if (strAnnee Mod 4 0) And (strAnnee Mod 100 <> 0) Or (strAnnee Mod 400 0) Then
NbreJoursMois = 29
Else
NbreJoursMois = 28
End if
'Les autres mois
Case Else
NbreJoursMois = 31
End Select
For i = 1 To NbreJoursMois If Len(i) 1 Then i"0" & i If Len(strMois) 1 Then strMois "0" & strMois
If Weekday(CDate(i & "/" & strMois & "/" & strAnnee)) <> vbSunday And _
Weekday(CDate(i & "/" & strMois & "/" & strAnnee)) <> vbSaturday And _
OmitFerie(i & "/" & strMois) <> 0 Then
strListe = strliste &vbCrLf& FormatDateTime(CDate(i & "/" & strMois & "/" & strAnnee), 1)
End If
Next
NbreJoursMois = strListe
End Function
Function OmitFerie(strJourMois)
TabJoursFeries = Array("01/01","01/05","08/05","17/05","14/07","15/08","01/11","11/11","25/12")
OmitFerie = UBound(Filter(TabJoursFeries, strJourMois))
End Function
'Jours Fériés fixes
'
'01/01 - Jour de l'An
'01/05 - Fete du Travail
'08/05 - Victoire 1945
'14/07 - Fete Nationale
'15/08 - Assomption
'01/11 - Toussaint
'11/11 - Armistice 1918
'25/12 - Noel
'Jours Fériés (à saisir chaque année)
'
'09/04/2007 - Lundi de Paques
'17/05/2007 - Jeudi de l'Ascension
Maxou le petit
Messages postés47Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention21 mai 2007 8 mai 2007 à 07:18
Bonjour Mortalino;
Cela faisiat un bail, tu m'as fait énormément progresser en VBA Excel, maintenant j'arrive à faire des choses assez sympa.
Par contre Access et le SQL est encore un mystére pour moi, je comptais bien m'en sortir avec la fonction " Diffdate".
Ta solution est certainement bonne mais je crains que savoir ne sufise pas en matière de syntaxe !!!
Je vais assayer, je te tiens au courant...
Maxou le petit
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 8 mai 2007 à 07:27
Salut Maxou,
oui, ça faisait un moment
Pour le sql, je te rassure, j'y connais pas grand chose aussi. Surtout en partant d'access.
Si t'as un bout de code, ce serait cool, comme ça je fais 2 ou 3 tests et vois si c'est possible d'imbriquer une requête avec des fonctions VB
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
Maxou le petit
Messages postés47Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention21 mai 2007 8 mai 2007 à 09:34
Merci
Dur dur je n'arrive pas à faire calculer le Nb de jour entre mes 2 dates, il n'accepte pas mon expression !
Dans l'aide elle est formulée ainsi :
Expression |Résultat |----
Intervalle : DiffDate("d", [Date commande], [Date envoi]), Affiche dans le champ Intervalle le nombre de jours entre la date de commande et celle d'expédition
Maxou le petit
Messages postés47Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention21 mai 2007 8 mai 2007 à 09:44
Mortalino Euréka j'ai trouvé en partie !
1) J'ai rajouté la fonction nz en cas de valeur nulle, effectivement tous mes champs non pas forcément une valeur.
Jour: DiffDate("d";nz([Date commande]);nz([Date sortie magasin]);1;2)
2) Par contre je ne comprend pas à quoi servent les 2 derniers arguments de la fonction DiffDate, j'ai mis 1 et 2 cà marche mais il doit y avoir un tru !!!
«firstweekday»; «firstweek»