OVH Cloud OVH Cloud

pb de calculs de date

4 réponses
Avatar
FreeManSky
bonjour à tous,

Dans un sous formulaire, j'ai un calcul à faire un apparaitrre dans un
controle textbox à partir d'une date de début et d'une date de fin.

On m'a donné le code suivant :
Function NbJoursOuvres(start_date As Double, end_date As Double)
Dim f As MSOWCFLib.OCATP
Set f = New MSOWCFLib.OCATP
NbJoursOuvres = f.NETWORKDAYS(start_date, end_date)
Set f = Nothing
End Function

seulement, lors de la saisie de nouveaux enregistrements, les précédents se
retrouvent modifiés par rapport aux nouvelles dates saisies,

Existe t-il une fonction équivalente à NB.JOURS.OUVRES d'excel en access
pour me permettre de saisir une formule de calcul dans les propriétés du
champ du style : ="nb.jours.ouvres(datedebut, datefin) ?

Merci pour votre aide

4 réponses

Avatar
Jean
Pour les dates, va voir ce lien, qui est excellent :

http://mypage.bluewin.ch/w.stucki/CalculsDates.htm

A+ Jean.
Avatar
Benoit Compoint
Bonjour,

Je ne comprends pas le problème que vous rencontrez avec la fonction
NbJoursOuvres définie ci-dessous.
Pourriez-vous préciser votre problème (par exemple le mettant en évidence
dans l'un des formulaires de la base exemple Comptoir.mdb) ?

Benoît Compoint.

"FreeManSky" wrote in message
news:bodovm$hdh$
bonjour à tous,

Dans un sous formulaire, j'ai un calcul à faire un apparaitrre dans un
controle textbox à partir d'une date de début et d'une date de fin.

On m'a donné le code suivant :
Function NbJoursOuvres(start_date As Double, end_date As Double)
Dim f As MSOWCFLib.OCATP
Set f = New MSOWCFLib.OCATP
NbJoursOuvres = f.NETWORKDAYS(start_date, end_date)
Set f = Nothing
End Function

seulement, lors de la saisie de nouveaux enregistrements, les précédents
se

retrouvent modifiés par rapport aux nouvelles dates saisies,

Existe t-il une fonction équivalente à NB.JOURS.OUVRES d'excel en access
pour me permettre de saisir une formule de calcul dans les propriétés du
champ du style : ="nb.jours.ouvres(datedebut, datefin) ?

Merci pour votre aide





Avatar
FreeManSky
Bonjour benoit,

En fait votre procédure fonctionne très bien, le problème est que je vous ai
omis de signaler dans quel contexte je devais m'en servir :

J'ai un sous formulaire qui a pour but de suivre des dates de prolongation
suite à un arrêt maladie.
Chaque nouvelle prolongation est un nouvel enregistrement.

La structure de la table étant: :
Datedébut
Datefin
tauxhoraire

Quand j'applique votre procédure, le calcul qui découle de la différence de
date sur un nouvel enregistrement vient également modifier la valeur des
enregistrements précédents. Je vous indique ci dessous le code qui me génère
cette mise à jour :

Function NbJoursOuvres(start_date As Double, end_date As Double)
Dim f As MSOWCFLib.OCATP
Set f = New MSOWCFLib.OCATP
NbJoursOuvres = f.NETWORKDAYS(start_date, end_date)
Set f = Nothing
End Function

Private Sub prolfin_AfterUpdate()

hprol = NbJoursOuvres(proldeb, prolfin) * 7.8

End Sub


hprol étant le controle textbox qui me permet pour chaque enregistrement de
calculer le nombre d'heure entre les 2 dates (proldeb et prolfin).

Je pense que le problème est lié du fait que je n'ais pas imputé la formule
de calcul dans les proprietés (source) du controle textbox et que par ce
biais il modifie tous les enregistrements déjà existants.

J'espère que vous cernerez mieux ma problèmatique

Bien à vous

Franck

"Benoit Compoint" a écrit dans le message de
news:
Bonjour,

Je ne comprends pas le problème que vous rencontrez avec la fonction
NbJoursOuvres définie ci-dessous.
Pourriez-vous préciser votre problème (par exemple le mettant en évidence
dans l'un des formulaires de la base exemple Comptoir.mdb) ?

Benoît Compoint.

"FreeManSky" wrote in message
news:bodovm$hdh$
bonjour à tous,

Dans un sous formulaire, j'ai un calcul à faire un apparaitrre dans un
controle textbox à partir d'une date de début et d'une date de fin.

On m'a donné le code suivant :
Function NbJoursOuvres(start_date As Double, end_date As Double)
Dim f As MSOWCFLib.OCATP
Set f = New MSOWCFLib.OCATP
NbJoursOuvres = f.NETWORKDAYS(start_date, end_date)
Set f = Nothing
End Function

seulement, lors de la saisie de nouveaux enregistrements, les précédents
se

retrouvent modifiés par rapport aux nouvelles dates saisies,

Existe t-il une fonction équivalente à NB.JOURS.OUVRES d'excel en access
pour me permettre de saisir une formule de calcul dans les propriétés du
champ du style : ="nb.jours.ouvres(datedebut, datefin) ?

Merci pour votre aide









Avatar
FreeManSky
Bonjour benoit,

En fait votre procédure fonctionne très bien, le problème est que je vous ai
omis de signaler dans quel contexte je devais m'en servir :

J'ai un sous formulaire qui a pour but de suivre des dates de prolongation
suite à un arrêt maladie.
Chaque nouvelle prolongation est un nouvel enregistrement.

La structure de la table étant: :
Datedébut
Datefin
tauxhoraire

Quand j'applique votre procédure, le calcul qui découle de la différence de
date sur un nouvel enregistrement vient également modifier la valeur des
enregistrements précédents. Je vous indique ci dessous le code qui me génère
cette mise à jour :

Function NbJoursOuvres(start_date As Double, end_date As Double)
Dim f As MSOWCFLib.OCATP
Set f = New MSOWCFLib.OCATP
NbJoursOuvres = f.NETWORKDAYS(start_date, end_date)
Set f = Nothing
End Function

Private Sub prolfin_AfterUpdate()

hprol = NbJoursOuvres(proldeb, prolfin) * 7.8

End Sub


hprol étant le controle textbox qui me permet pour chaque enregistrement de
calculer le nombre d'heure entre les 2 dates (proldeb et prolfin).

Je pense que le problème est lié du fait que je n'ais pas imputé la formule
de calcul dans les proprietés (source) du controle textbox et que par ce
biais il modifie tous les enregistrements déjà existants.

J'espère que vous cernerez mieux ma problèmatique

Bien à vous

Franck



"Benoit Compoint" a écrit dans le message de
news:
Bonjour,

Je ne comprends pas le problème que vous rencontrez avec la fonction
NbJoursOuvres définie ci-dessous.
Pourriez-vous préciser votre problème (par exemple le mettant en évidence
dans l'un des formulaires de la base exemple Comptoir.mdb) ?

Benoît Compoint.

"FreeManSky" wrote in message
news:bodovm$hdh$
bonjour à tous,

Dans un sous formulaire, j'ai un calcul à faire un apparaitrre dans un
controle textbox à partir d'une date de début et d'une date de fin.

On m'a donné le code suivant :
Function NbJoursOuvres(start_date As Double, end_date As Double)
Dim f As MSOWCFLib.OCATP
Set f = New MSOWCFLib.OCATP
NbJoursOuvres = f.NETWORKDAYS(start_date, end_date)
Set f = Nothing
End Function

seulement, lors de la saisie de nouveaux enregistrements, les précédents
se

retrouvent modifiés par rapport aux nouvelles dates saisies,

Existe t-il une fonction équivalente à NB.JOURS.OUVRES d'excel en access
pour me permettre de saisir une formule de calcul dans les propriétés du
champ du style : ="nb.jours.ouvres(datedebut, datefin) ?

Merci pour votre aide