Bonjour,

de quoi peut-être alimenter la FAQ Access 2010…

Soit une table des employés :
TblEmploye(idEmploye, NomEmploye, NumeroCentre, EtreResponsable)

Une employé appartient à un centre et peut être responsable du centre où il est employé (dans ce cas, le booléen EtreResponsable=Vrai).

On impose la règle de gestion supplémentaire : Un centre ne comporte au plus qu’un seul employé responsable.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
TblEmploye :
idEmploye    NomEmploye    NumeroCentre    EtreResponsable
  1          Jean Dupond         1            Faux
  2          Paul Dubois         1            Vrai
  3          Pierre Jacques      1            Vrai  <-- impossible, le centre n°1 a déjà un employé responsable
Afin d’invalider la saisie, on se place dans l’évènement "Avant Modification" de la table des employés :


On rentre dans le bloc (Si-Fin si), si un nouvel employé responsable est inséré, si un employé existant devient responsable ou si un employé responsable change de centre.
Notez l’emploi de l’alias T1 qui permet de chercher un employé responsable parmi les employés du centre de l’employé concerné par l’insertion (où la mise à jour).

Si un enregistrement est trouvé, on déclenche l’erreur :