Bonjour,
J'ai une application qui nécessite que l'accès direct aux tables doit être interdit aux utilisateurs (hors administrateur).
Seule la lecture/modification/suppression est autorisée via les formulaires. En gros, je veux forcer les utilisateurs à ne passer que par les écrans pour accéder aux données.
La solution auquelle je pensais était la suivante : j'active la sécurité Access. Je supprime tous les accès en lecture/écriture aux tables à tous les utilisateurs (hors administrateurs). A l'ouverture des formulaires, je transfère l'utilisateur dans le groupe des utilisateurs, et à la fermeture je le supprime de ce groupe.
Pour le moment, je me trouve confronté à 2 soucis :
1) J'ai mis mon code à l'ouverture du formulaire, mais j'ai une erreur au moment de l'ajout au groupe des Administrateurs (ligne en rouge).
2) Le code à l'ouverture ne s'exécute pas car j'ai le message "Impossible de lire les enregistrements, pas d'autorisation sur la table XXXX", ce qui veut dire que mon code n'a même pas le temps de s'exécuter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Form_Open(Cancel As Integer) Dim Wrk As Workspace Dim Usr As DAO.User Dim Grp As DAO.Group Set Wrk = DBEngine.Workspaces(0) With Wrk Set Usr = .Users(Application.CurrentUser) Set Grp = .Groups("Admins") Usr.Groups.Append Grp End With End Sub
Est-ce que quelqu'un pourrait me souffler quelques trucs pour résoudre mon souci ? Voire, me suggérer carrément une autre solution à ma problématique.
merci d'avance !
Partager