OVH Cloud OVH Cloud

mise à jour état

2 réponses
Avatar
pouf!
g un etat avec des champs calcul=E9 par des fonctions=20
situ=E9es dans un module general.
l'une d'elles colore en rouge les valeurs hors bornes.
decidement il ne semble pas vouloir remettre =E0 jour les=20
couleurs...
Si je change le sens de l'inegalit=E9, il me faut fermer et=20
reouvrir la base =E0 chaque fois!!

avec comme code du formulaire :
Sub Report_Current()
Me!Report.Refresh
=20
End Sub
et dans le module standard :

Function NbJourOuvres(Date1, Date2) As Integer


' pour repondre au besoin d'indicateurs de performance
Dim lngRouge As Long
Dim NbJour, NbSem, tmp, tmpColor As Integer
Dim co As String
tmp =3D -1
If Date1 And Date2 Then
'calcule le nombre de jours ouvr=E9s entre 2 dates
' difference entre 2 dates
NbJour =3D DateDiff("d", Date1, Date2) + 1

' Nb de semaines entre ces 2 dates
NbSem =3D DateDiff("ww", Date1, Date2)
tmpColor =3D (NbJour - (NbSem * 2))
=20
If tmpColor > 5 Then
tmp =3D tmpColor / 7
Else
tmp =3D tmpColor
End If
End If

If (tmpColor > Report_EtatIndicateur!FirstMeetingApproval)=20
Then
'+100 '20

lngRouge =3D RGB(255, 0, 0)
Report_EtatIndicateur.Texte28.ForeColor =3D lngRouge


End If
If (tmpColor > Report_EtatIndicateur!
DoseSelectionApproval) Then
'+100 '20

lngRouge =3D RGB(255, 0, 0)
Report_EtatIndicateur.Texte32.ForeColor =3D lngRouge


End If
If (tmpColor > Report_EtatIndicateur!FinalDraftApproval)=20
Then
'+100 '20

lngRouge =3D RGB(255, 0, 0)
Report_EtatIndicateur.Texte34.ForeColor =3D lngRouge


End If

If (tmpColor > Report_EtatIndicateur!ApprovalSubmission)=20
Then
'+100 '20

lngRouge =3D RGB(255, 0, 0)
Report_EtatIndicateur.Texte36.ForeColor =3D lngRouge


End If



NbJourOuvres =3D tmp

End Function
ca ne fonctionne pas!

poutant les valeurs sont bones.
si quelque s'y connait en etat...

merci d'avance
yk

2 réponses

Avatar
Laurent Jordi \(www.ezlogic.mc\)
Salut,

il ne faut pas... non ... il ne faut pas :

C'est pas le bon évennement...

Private Sub Form_Current()
MonControle.color=...
End Sub


a écrit dans le message de
news:231c01c47009$6551c210$
pouf!
g un etat avec des champs calculé par des fonctions
situées dans un module general.
l'une d'elles colore en rouge les valeurs hors bornes.
decidement il ne semble pas vouloir remettre à jour les
couleurs...
Si je change le sens de l'inegalité, il me faut fermer et
reouvrir la base à chaque fois!!

avec comme code du formulaire :
Sub Report_Current()
Me!Report.Refresh

End Sub
et dans le module standard :

Function NbJourOuvres(Date1, Date2) As Integer


' pour repondre au besoin d'indicateurs de performance
Dim lngRouge As Long
Dim NbJour, NbSem, tmp, tmpColor As Integer
Dim co As String
tmp = -1
If Date1 And Date2 Then
'calcule le nombre de jours ouvrés entre 2 dates
' difference entre 2 dates
NbJour = DateDiff("d", Date1, Date2) + 1

' Nb de semaines entre ces 2 dates
NbSem = DateDiff("ww", Date1, Date2)
tmpColor = (NbJour - (NbSem * 2))

If tmpColor > 5 Then
tmp = tmpColor / 7
Else
tmp = tmpColor
End If
End If

If (tmpColor > Report_EtatIndicateur!FirstMeetingApproval)
Then
'+100 '20

lngRouge = RGB(255, 0, 0)
Report_EtatIndicateur.Texte28.ForeColor = lngRouge


End If
If (tmpColor > Report_EtatIndicateur!
DoseSelectionApproval) Then
'+100 '20

lngRouge = RGB(255, 0, 0)
Report_EtatIndicateur.Texte32.ForeColor = lngRouge


End If
If (tmpColor > Report_EtatIndicateur!FinalDraftApproval)
Then
'+100 '20

lngRouge = RGB(255, 0, 0)
Report_EtatIndicateur.Texte34.ForeColor = lngRouge


End If

If (tmpColor > Report_EtatIndicateur!ApprovalSubmission)
Then
'+100 '20

lngRouge = RGB(255, 0, 0)
Report_EtatIndicateur.Texte36.ForeColor = lngRouge


End If



NbJourOuvres = tmp

End Function
ca ne fonctionne pas!

poutant les valeurs sont bones.
si quelque s'y connait en etat...

merci d'avance
yk
Avatar
3stone
Salut,

a écrit
pouf!

??


g un etat avec des champs calculé par des fonctions
situées dans un module general.
l'une d'elles colore en rouge les valeurs hors bornes.
decidement il ne semble pas vouloir remettre à jour les
couleurs...
Si je change le sens de l'inegalité, il me faut fermer et
reouvrir la base à chaque fois!!

avec comme code du formulaire :
Sub Report_Current()
Me!Report.Refresh

End Sub
et dans le module standard :



Déjà, je ne vois pas pourquoi mettre une telle fonction
dans un module général, puisque *totalement* lié
à ton état de par l'adressage...

Autant le mettre dans le l'état



Function NbJourOuvres(Date1, Date2) As Integer

' pour repondre au besoin d'indicateurs de performance
Dim lngRouge As Long
Dim NbJour, NbSem, tmp, tmpColor As Integer


Mauvaise déclarations !!
NbJour, NbSem et tmp sont déclarés "Variant" de cette facon!


Dim co As String
tmp = -1
If Date1 And Date2 Then


Tu pense tester quoi de cette facon ?




--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------