Jours ouvrés entre 2 dates sous access

Fermé
zzkele - 5 déc. 2009 à 15:55
 fiu - 7 déc. 2009 à 21:51
Bonjour,
je souhaite faire la différence dans access entre deux dates en gardant seulement les jours ouvrés.Pouvez vous m'aider?

2 réponses

Salut

Comme Access ne sait pas ce qu'est un jour ouvré, tu vas construire et alimenter une table "Calendrier" avec la date, un char qui contiendra 'O' sir le jour est férié et un libellé sur 30 char où tu pourras nommer le jour férié.
Ensuite, il ne te restera dans tes requêtes qu'à inclure la table calendrier dans ta jointure et poser une condition supplémentaire : ferie différent de 'O'
0
Merci pour ta réponse rapide
Le problème c'est que je ne sais pas comment faire dans ma base.je t'explique mon cas
J'ai une énorme table avec différents champs que voici:
date_debut date_fin nom critère
04/04/2008 04/04/2008 patrick 1
08/04/2008 18/06/2008 Jean 0

j'ai des milliers de lignes comme cela.

Ce que je veus faire c'est déterminer le nombre de jours ouvrés entre les différentes dates ligne à ligne

J' ai pas compris quand tu parles de "char"

Merci
PS: je ne connais pas tres bien access
0
Salut

la table que j'utilise et que je te conseillais est
Calendrier(
dat date,
ferie char(1),
description char(30)
)

dat est une colonne destinée à contenir la date (je sais pas quel type te conseiller, je connais pas Access)
ferie est une colonne de type caractère de longueur 1 et est destiné à recevoir 'O' si le jour est férié
description est une colonne de type caractère de longueur 30 max et est destiné à recevoir le nom de la fête

ensuite, tu charges ta table avec les valeurs appropriées, genre
+----------+-------+--------------+
! dat      ! ferie ! description  !
+----------+-------+--------------+
!01/01/2010!  O    ! Jour de l'an !
!02/01/2010!       !              !
!03/01/2010!  O    ! dimanche     !
!04/01/2010!       !              !
!05/01/2010!       !              !
!06/01/2010!       !              !
!07/01/2010!       !              !
!08/01/2010!       !              !
!09/01/2010!       !              !
!10/01/2010!  O    ! dimanche     !
!11/01/2010!       !              !
!12/01/2010!       !              !
! ...      !       !              !
+----------+-------+--------------+
et ensuite tu peux requêter.
Mettons que tu veuilles exclure les jours fériés:
select e.*
from enorme_table e, calendrier c
where ...
and c.dat between e.date_debut and e.date_fin
and c.ferie <> 'O'

tu peux retirer les dimanches s'ils t'embêtent. chez moi, j'ai plus vite fait comme ça que de rajouter un prédicat genre and fonction_conversion_date_en_chaine(dat, 'dddd') <> 'Sunday'

conseil#1: évite de tester ça avec ton énorme table, prends-en simplement un extrait
conseil#2: vérifie bien les inclusions, je ne sais jamais quels extrêmes sont inclus dan la plage du between
0