Message d'avertissement avec access

Danièle -  
 Danièle -
Bonjour,
J'ai une date d'échéance dans mon formulaire access. J'aimerais qu'un mois avant l'échéance de cette date vienne un message d'avertissement ou une couleur rouge dans mon contrôle.Quelqu'un peut-il m'aider? Faut-il ajouter une macro? Merci beaucoup, beaucoup....
A voir également:

12 réponses

zenon Messages postés 729 Statut Membre 180
 
Comment est affiché ton formulaire?

En mode simple ou continu?
As-tu un en-tête?
0
Danièle
 
Merci pour la réponse,
Mon formulaire est en mode simple. L'entête est Fiche patient
A +
0
zenon Messages postés 729 Statut Membre 180
 
Il y a plusieurs solutions possibles. tout dépend du mode de fonctionnement que tu souhaites.

Tu peux changer la couleur du champ Date à l'ouverture du formulaire mais cela ne fonctionne évidemment que si tu consultes l'enregistrement en cause ou bien vérifier si des enregistrements ont atteint l'échéance et les afficher ensemble. Je pense que cette solution est préférable.

Dans la première solution, on peut ajouter une procédure événementielle à la propriété sur réception focus, par exemple

If Date() - [NomDuContrôleDate] < 30 Then
[NomDuContrôleDate].BackColor = 250
End IF
0
Danièle
 
Merci,
J'ai donc ajouter la procédure événementielle à la propriété sur réception focus. J'obtiens un message d'erreur: "La macro ou son groupe de macros n'esxite pas ou la macro est nouvelle mais n'a pas été enregistrée. Lorsque vous entrez la syntaxe nomgroupememacro.nommacro dans un argument, vous devez spécifier le nom sous lequel le groupe de macros de la macro a été enregistré la dernière fois....)
Mon contrôle basé sur ma table est un champ date/heure. Est-ce que je dois remplacer NomDuContrôle par le nom de MON contrôle, c'est-à-dire EchéanceTraitement???
Tous les enregistrements qui ont atteint l'échéance devraient être affichés....
Je suis un peu paumée là...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zenon Messages postés 729 Statut Membre 180
 
Je me suis mal expliqué.

J'imagine que tu as tapé directement le texte dans la ligne correspondante des propriétés et access essaie de se référer à une macro.

Il faut cliquer à droite sur les trois petits points et choisir Procédure événementielle.
La fenêtre VB s'ouvre avec le point d'insertion positionné automatiquement sur le ligne où il faut taper le code que je te propose.
Il faut remplacer les termes que j'utilise par le vrai nom de tes propres contrôles. Les crochets ([]) ne sont indispensables que si les noms de tes champs comportent des espaces ou des caractères réservés.
Essaie et tiens-moi au courant. Je n'ai pas testé si l'affichage change au changement d'enregistrement.

Désolé...
0
Danièle
 
Salut,
J'ai donc placé ta formule sous procédure événementielle, ce qui donne ceci: If Date() - [DateEchéance] < 30 Then
[DateEchéance].BackColor = 250
End IF.
Le problème maintenant, c'est que quand je clique dans le contrôle de mon formulaire, il devient effectivement rouge, mais lorsque je passe à un autre enregistrement, peu importe la date entrée pour EchéanceTraitement, il sont tous rouge.
Réception focus? Pourquoi pas après MJ ou Sur clic?????
On y est presque, courage.
A +
0
zenon Messages postés 729 Statut Membre 180
 
A nouveau, désolé...

Effectivement il vaut peut-être choisir une autre propriété.

Mais surtout, j'ai oublié une partie du code :

If Date() - [NomDuContrôleDate] < 30 Then
[NomDuContrôleDate].BackColor = 250
Else [NomDuContrôleDate].Backcolor = 16777215 (ou la couleur souhaitée)
End IF

Bon travail.
0
Danièle
 
Salut,
Non, non, je ne t'ai pas oublié. Mais, il y a beaucoup, voire même un peu trop.
CA MARCHE!!!
Le fait que le contrôle avec une date 2005 vienne rouge aussi provient du fait que nous sommes encore en 2004?
C'est le seul petit inconvénient de la chose. Car mon contrôle avec une date sur l'année 2005 est également rouge. J'ai essayé de même l'horloge de mon ordinateur sur janvier 2005. Mais ça ne marche pas....
Merci encore
Danièle
0
zenon Messages postés 729 Statut Membre 180
 
décidément ma distraction ne s'améliore pas...

If Date() - [NomDuContrôleDate] Between 0 AND 30 Then
[NomDuContrôleDate].BackColor = 250
Else [NomDuContrôleDate].Backcolor = 16777215 (ou la couleur souhaitée)
End IF

On y arrivera...
0
Danièle
 
On y arrivera.... pas
Between n'est pas accepté. La machine demande Goto ou Then.
If Date(): la machine annule les (). Mes dates d'échéance peuvent être n'importe quand...
0
zenon Messages postés 729 Statut Membre 180
 
Mais si... enfin j'espère!

Sur activation:

If Date - [NomDuContrôleDate] < 30 And Date - [NomDuContrôleDate] > 0 Then
[NomDuContrôleDate].BackColor = 250
Else [NomDuContrôleDate].Backcolor = 16777215 (ou la couleur souhaitée)
End IF
End Sub

Ca marche?

(je ne sais pas pourquoi Between ou Entre ne sont pas acceptés)
0
Danièle
 
OUAIS!!!! Super!!!! CA MARCHE!!! Merci beaucoup, beaucoup. Je te souhaite de bonnes fêtes de fin d'année et à bientôt.
Danièle
0