Liste déroulante problématique

Bonjour.

Ci-joint une base où une liste déroulante est problématique.

Il s’agit de gestion de plannings hebdomadaires où des salariés interviennent chez des bénéficiaires.

À chaque planning (formulaire principal) est affecté un salarié. Dans le sous-formulaire des créneaux, on définit le bénéficiaire, le jour, l’heure de début et l’heure de fin.

  • À l’ouverture du formulaire (F_PLANNIFICATION), la zone de liste lstSalId (le salarié) est désactivée par une macro puisqu’une fois le salarié couplé au planning qu’on a créé, on ne doit plus pouvoir le changer.

  • Lorsque l’on clique sur le bouton d’ajout d’un planning, lstSalId est activée par une macro afin de choisir le salarié.

Tout ça est ok…

Pour sélectionner ensuite un planning particulier, j’ai créé une zone de liste lstPlaId (colonne de table PLA_ID) correspondant au planning. Mais évidemment, pour que ce soit parlant, il faut que le nom du salarié figure dans cette liste. J’ai donc défini cet SQL :

SELECT SAL_NOM || ' ' || SAL_PRENOM, PLA_ID FROM T_SALARIES INNER JOIN T_PLANNINGS ON T_SALARIES.SAL_ID = T_PLANNINGS.SAL_ID ORDER BY SAL_NOM, SAL_PRENOM

Et c’est cette zone de liste qui pose un problème…

Lorsqu’on ouvre le formulaire, on peut cliquer dans la grille du premier enregistrement, faire des modifications, des ajouts, des suppressions… Mais dès qu’on sélectionne un planning et qu’on clique dans la grille, le nom du salarié dans la liste (désactivée) lstSalId “disparaît” et un message d’erreur indique :

Saisie requise dans le champ SAL_ID. Saisissez-y une valeur.

J’ai d’abord cru que c’était les macros qui étaient la cause, mais après leur suppression, le problème demeurait.

Alors j’ai supprimé lstPlaId et inséré deux boutons de navigation (précédent et suivant) dans F_PLANNIFICATION_TEST, pour voir, et le problème a disparu.

Je voudrais savoir comment résoudre la chose, car une liste déroulante (ou autre) de sélection de l’employé est obligatoire pour passer d’un planning à l’autre.

Merci.

dbPrimusPlannings.odb (82,5 Ko)