Liste de choix déroulante variable

Fermé
benmaria Messages postés 2 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 15 avril 2016 - 12 avril 2016 à 15:37
benmaria Messages postés 2 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 15 avril 2016 - 15 avril 2016 à 15:33
Bonjour,

Je suis à créer une base de donnée pour notre service des ressources humaines et j'aurais besoin d'un coup de main pour un aspect.

J'ai une table qui consigne toutes les absences. Dans le formulaire qui permet l'entrée de données et la consultation des fiches relatives aux absences, on peut choisir le nom de l'employé à partir d'une liste déroulante basée sur une requete à partir de la table des employés. Pour que cette liste ne soit pas trop longue, j'ai limité la liste aux employés actifs. Par contre, lorsque je consulte un enregistrement d'une absence relatif à un employé qui n'est plus actif son nom n'est plus affiché dans le champs de son nom (comme il ne fait plus partie de la liste déroulante, c'est comme si sa valeur n'était pas considérée, même si je n'appuie pas pour voir la liste déroulante).

Ce que j'aimerais faire est que la liste déroulante contienne seulement les employés actifs pour un nouvel enregistrement mais que le nom d'un employé inactif s'affiche tout de même dans le champ employé lors d'une consultation d'une fiche antérieure.

Comme le nom de l'employé est la première valeur que j'entre pour une nouvelle fiche, je pourrais utiliser le champ "date de l'absence" pour faire la différenciation entre un nouvel enregistrement ou un ancien (s'il est null alors c'est un nouvel enregistrement).

Je ne sais par contre pas comment pouvoir afficher ou pas la valeur ou la liste.

Auriez-vous des idées?

merci beaucoup!
A voir également:

2 réponses

Bonjour,
C'est un éternel problème!
Le plus simple serait d'avoir 2 formulaires avec des listes déroulantes différentes, un formulaire pour les saisies et la revue des agents actifs, et un autres de type Archives qui serait sans la restriction de l'activité.
Une autre solution serait de pouvoir changer la requête sous-jacente à la liste déroulante, par exemple avec un double-click, mais ça risque d'être un peu difficile à mettre au point même si ce n'est pas complètement impossible.
Bonne suite.
0
benmaria Messages postés 2 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 15 avril 2016
15 avril 2016 à 15:33
Merci Tessel75 de la réponse rapide!

Finalement j'ai trouvé une solution qui fonctionne pour mon application: j'ai placé un champ "nom" qui n'est pas une liste déroulante par dessus mon champs de liste déroulante. Par macro, je fais afficher la liste déroulante si c'est un nouvel enregistrement ou encore si l'employé est "actif"; sinon le champ non déroulant qui s'affiche (l'autre se masque automatiquement):

Private Sub Ctl_absence_retard_AfterUpdate()
If IsNull([date_absence_retard]) Then
Me!#employé.Visible = True
Me![nom].Visible = False
Else
Me!#employé.Visible = Me![actif]
Me![nom].Visible = Not (Me![actif])
End If
End Sub

Ce n'est peut-être pas la façon la plus facile mais ça fonctionne.

Bonne journée et merci de ton aide.

Benoit
0