Bonjour, à priori c'est bien un problème d'IHM (Interface Homme Machine ou simplement par abus de langage Interface).
Une solution relativement simple consiste à créer un écran de saisie ordinaire qui affiche toutes les données dont tu as besoin pour tout le monde.
Une fois ce formulaire au point, tu changes la source de données pour filtrer tes données.
Cela ressemble à
1 2 3 4
| ' À Mettre dans un module
public function LireUsager() as string
LireUsager=Environ$("username") 'Récupère le code d'accès utilisé lors de la connexion au réseau.
end function |
À mettre dans une requête :
select [taSource[.* from [taSource] where [taSource].[Usager]=LireUsager()
Comme cela ton usager ne voit que les données qui le concerne.
L'administrateur lui pourrait avoir un formulaire basé sur [taSoucre] pour avoir accès aux données de tout le monde.
TaSource peut être une table ou une requête, selon le besoin.
tblListeAdmin
ClefAdmin (numéro auto)
CodeAdmin (Texte, 255 carcatères, Index unique)
Nom (si tu veux)
Prenom (si tu veux)
À l'ouverture tu pourrais faire un formulaire qui s'ouvre automatiquement (c'est une option de Access) et y mettre, à l'ouverture, quelque chose comme
1 2 3 4 5 6 7
| if isnull(first("CodeAmin", "tblListeAdmin", "CodeAdmin=""" & LireUsager() & """") then
'Ce n'est pas un admin : ouvrir le formulaire filtré
else
'C'est pas un admin : ouvrir le formulaire non filtré
end if
docmd.close acForm, me.name 'Ferme le formulaire d'aiguillage. |
Note qu'on pourrait utiliser un seul formulaire pour les employés et les admin mais cela peut être plus complexe quand on commence.
A+
Partager