Liste de choix déroulante variable
benmaria
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
benmaria Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
benmaria Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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!
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:
- Liste de choix déroulante variable
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste code ascii - Guide
- Liste de diffusion whatsapp - Guide
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.
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.
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
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