pb date access - VB/VBA/VBS - Programmation
Marsh Posté le 23-01-2009 à 09:59:48
La fonction Weekday() retourne le numéro du jour de la semaine.
Par exemple pour trouver la date de lundi prochain :
intOffset = Abs((9 - Weekday(Now))Mod 7) |
Marsh Posté le 23-01-2009 à 10:05:44
merci
pour ta reponse
mais je recherche qlq chose d'automatique
quand tu rentres comme aujourd'hui le vendredi 23 janvier je veux que automatiquement il m'affiche mercredi 28 janvier dans une autre case
a +
thierry
Marsh Posté le 23-01-2009 à 10:31:59
Citation : dans une autre case |
Qu'est-ce qu'une case ? Un cellule Excel ou un champ d'un formulaire Access, ou autre chose ?
Citation : automatiquement |
Une automatisation possible consiste à avoir quelques lignes de VBA se basant sur la fonction Weekday() dans une procédure appelée lors d'un évenement. (Est-ce que vous connaissez VBA ? Cela permet de faire beaucoup de choses et ce n'est pas très compliqué à mettre en oeuvre. Cela vaut le coup de l'apprendre quand on utilise Access ou Excel régulièrement.)
Marsh Posté le 23-01-2009 à 10:35:51
re
merci pour ces reponses rapides
c'est un champ de formulaire
et pour le vba je connais que peut et cela remonte a un certain temps
dans exel j'ai trouve une solution avec des fonction mais je veux utiliser access pour des questions de protection des données
a +
thierry
Marsh Posté le 26-01-2009 à 16:10:34
je vais reposer le probleme
dim datesaisie = date
dim valeurdbf = datesaisie +1
if datesaisie = vbmonday then valeurbdf = vbtuesday
et tout ceci jusqu'au vendredi qui renvoi au lundi sauf si la date vzleurbdf tombe un jour ferie alors je prend le lendemain
voila mon petit probleme
a +
thierry
Marsh Posté le 27-01-2009 à 13:16:27
Bonjour
Tu dois aussi calculer les jours type 11/11 ou 25/12 ?
Si c'est juste vis a vis de la semaine. Comme tu as +3 jours, tu regardes quel jour de la semaine tombe ta date de départ. Sil elle est strictement inférieur à mercredi tu ajoutes 3, sinon tu ajoutes 5
Ensuite si tu n'y connais rien vba tu peux commencer par les macros.
Un définir valeur avec :
element : nom du champ de ta date de départ (je pars du principe que ton champ se nomme [DateDepart]
Expression : =vraifaux(JourSem([DateDepart];2)<3;AjDate("j";3;[DateDepart]);AjDate("j";5;[DateDepart]))
En vba ca donnerait :
If WeekDay([DateDepart],2) <3 then
DateFin = DateAdd("j",3,[DateDepart])
Else
DateFin = DateAdd("j",5,[DateDepart])
End if
En fonction d'ou tu es ou pour coder tu peux aussi utiliser cette forme la pour faire reference a tes controles :
Forms("Nom de ton formulaire" )("Nom de ton controle ou est la date" )
Cordialement
Marsh Posté le 27-01-2009 à 13:22:41
bonjour
merci pour ta reponse oui je dois aussi prendre les jours feries en compte et la ca complique le systeme
cordialement Thierry
Marsh Posté le 27-01-2009 à 13:23:47
J'ai edité mon post en haut...
Alors la c'est pas pareil.... Faut calculer les jours fériés... Calendrier gregorien toussa....
Marsh Posté le 27-01-2009 à 13:27:15
Citation : 'Fonction trouvée sur www.codes-sources.fr/www.vbfrance.com |
Marsh Posté le 27-01-2009 à 13:34:11
re
merci pour ta reponse je vais tester ca cet apm
je te tiens au courant si j'ai un soucis pour le faire fonctionner
bon apm
a +
thierry
Marsh Posté le 27-01-2009 à 13:47:06
re
je viens de teste mais je m'arrive pas ale faire fonctionner.
peux tu m'aider
cordialement
thierry
Marsh Posté le 27-01-2009 à 14:05:05
ReplyMarsh Posté le 27-01-2009 à 14:23:08
re
voila ma table
date de saise
date de depot = date de saisie + 1 jour ouvre
date valeur = date depot + 1 jour ouvre
date valeur1 = date de depot + 3 jours ouvre
dans XL j'ai trouve une solution mais comme je bosse sous access 97 je recherche une nouvelle solution
a +
thierry
Marsh Posté le 27-01-2009 à 14:47:17
Je n'arrive pas a voir la difference qu'il pourrait y avoir sous excel et access au niveau des calculs de date...
Marsh Posté le 27-01-2009 à 14:54:28
re
pour Xl j'utilise la fonction suivante =SERIE.JOUR.OUVRE(B4;1;L4:L21) en determinant la fonction (=PLANCHER(JOUR(MINUTE(K2/38)/2+56)&"/5/"&K2;7)-34
voila c'est assez simple
mais pour access je n'arrive a rien de concret
a +
thierry
Marsh Posté le 30-01-2009 à 11:01:50
Et tu veux quoi ?
Une requete mise a jour qui mette a jour toutes tes dates calculées en fonction de [date de saise] ?
Ou un formulaire ?
Marsh Posté le 30-01-2009 à 11:27:59
A mettre dans un module :
Code :
|
Ensuite, je pars du principe que le controle dans lequel tu saisis la date se nomme [DateSaisie] et celui qui calcul le j+3 se nomme [DateJ3].
Dans le module de ton formulaire, apres mise a jour de DateSaisie :
[DateJ3] = JPlusNbJour([DateSaisie], 3)
Si tu veux j+1 : [DateJ3] = JPlusNbJour([DateSaisie], 1)
Ou si tu veux j+15 : [DateJ3] = JPlusNbJour([DateSaisie], 15)
Cordialement
Marsh Posté le 30-01-2009 à 11:32:02
re
merci
je vais tester cet apm
et je te dis
encore
merci
thierry
Marsh Posté le 30-01-2009 à 11:37:17
J'ai édité mon code pour faire une modif, reprends le.
Tiens moi au jus
Marsh Posté le 30-01-2009 à 12:51:05
re
merci
parcontre je sais pas si je vais avoir du temps cet apm
parcontre lundi cela devrait le faire
donc je te tiens au courant au plus tard lundi
bon week a +
thierry
Marsh Posté le 02-02-2009 à 16:15:47
bonjour
apres de nombreux tests j'ai pas reuissi a faire fonctionner le formulaire il refuse la formule dans le control
a +
thierry
Marsh Posté le 02-02-2009 à 20:12:51
Je pense que ca serait plus simple que tu m'envoies ta base que je zieute...
Donne moi parcontre le nom du formulaire a modifier/regarder
Marsh Posté le 23-01-2009 à 08:24:08
bonjour
j'ai un petit soucis avec les dates
voila le probleme
sous access 97
j'ai une date de saisie je voudrais avoir une date de valeur a j +3 la pas de probleme, le probleme est que ce j + 3 doit etre un jour ouvre de la semaine et pas un jour ferie ou un jour week .
la je cale completement
par avance je vous remercie de votre aide
thierry