Bonjour, j'aimerais savoir comment créer des groupes d'utilisateurs avec Access 2007, avec les nouveaux menus, je n'arrive pas à trouver la fonction.
Merci
Bonjour, j'aimerais savoir comment créer des groupes d'utilisateurs avec Access 2007, avec les nouveaux menus, je n'arrive pas à trouver la fonction.
Merci
Bonjour,
http://access.developpez.com/access2...istantSecurite
Mais attention, pour les fichiers Access 2007 :
Office Access 2007 ne fournit pas de sécurité de niveau utilisateur pour les bases de données créées avec les nouveaux formats de fichier (fichiers .accdb et .accde). Toutefois, si vous ouvrez une base de données créée avec une version précédente d'Access dans Office Access 2007 et que la sécurité de niveau utilisateur est appliquée à cette base de données, ces paramètres seront toujours actifs.
Ce message vous a été utile ? Si oui, cliquez sur
Mes tutoriels Access
La rubrique Microsoft Access
Cours et tutoriels pour apprendre Access
La FAQ Access
Le Forum Access
Offres d'emploi développeur Access
Salut,
Pourquoi ont-ils aboli cette fonction ? Maintenant, comment doit-on procéder pour instaurer des droits avec des utilisateurs ?
Merci
Au niveau de la gestion des utilisateurs, il n'y a pas de réel possibilité.
Soit se contenter du format Access 2003, les nouvelles fonctionnalités du format 2007 ne sont alors pas utilisables (pièces jointes, multivalué, et historique mémo essentiellement). A noter que les fonctionnalités ne portant pas sur le moteur de base de données (telles que l'édition de texte enrichi, le calendrier, etc) sont quant à elle disponible.
Soit utiliser le format 2007 et abandonner l'idée d'une gestion multi-utilisateur gérée par Access. La solution consiste alors à se tourner vers une gestion où les droits seraient inscris dans une table. L'accès aux données est quant à lui assuré par la méthode dite vPPC (virtual password protected connections). Cette méthode a été implémantée par Alan Cossey et un de ses collègue. Elle est disponible sur le net en langue anglaise (on prévoit dans faire une intégration sur developpez.com, mais ce n'est pas encore le cas). Elle consiste en une architecture à 3 bases de données : backend, frontend et mid-tier.
Le backend est protégé et chiffré par mot de passe. Le mid-tier est lié au backend et propose des requêtes sur les tables liées. Le mid-tier est protégé et chiffré par un autre mot de passe. Le frontend ne possède aucune table liée. Le frontend quant à lui possède des requêtes de ce style :
Les formulaires sont basés sur ces requêtes et une classe permet d'instancier la connexion à la base de données en spécifiant le mot de passe et d'ouvrir les objets.SELECT * FROM REQUETE IN "c:\mid-tier.accde"
Enfin, l'autre option consiste à utiliser une base MSDE ou SQL Server.
Ce message vous a été utile ? Si oui, cliquez sur
Mes tutoriels Access
La rubrique Microsoft Access
Cours et tutoriels pour apprendre Access
La FAQ Access
Le Forum Access
Offres d'emploi développeur Access
Bonjour à tous,
Je suis en train de me pencher sur la possibilité de gérer le coté multi utilisateurs et les droits associés sur la base que j'ai créée.
Il existe un bouton "gestion des utilisateurs et des groupes" que l'on peut mettre dans le ruban et qui est accessible via le menu de personnalisation de ce dernier.
Y a-t-il un moyen d'utilisere cela pour gérer le multi-utilisateurs même avec des fichiers des versions 2007 et ultérieurs ?
C'est vraiment une galère de ne pas avoir gardé ces fonctions dans les versions récentes.
Merci
_______________________
Boid'
L'expérience est le nom que l'on donne à la somme de ses erreurs
http://boidot.deviantart.com/
Bonjour,
Lors de mon stage, j'ai moi-même créé une gestion multi-utilisateurs.
J'ai procédé d'une façon plutôt simple avec un formulaire de gestion de groupe tout d'abord.
Ce formulaire permet principalement de créer une page d'Accueil en fonction des droits qu'à ce groupe (pour pouvoir attribuer des fonctions à des boutons, j'ai une page d'Accueil d'origine sur laquelle tous les codes sont présents et je copie celle-ci pour ensuite y mettre des boutons d'accès aux formulaires)
Ensuite, pour savoir qui appartient à un groupe, j'ai récupéré le nom d'utilisateur sur la session grâce à la commandeAu chargement de la base de données, j'ai un formulaire d'Ouverture qui va chercher, grâce à la commande précédente, à quel groupe appartient l'utilisateur connecté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Environ("UserName")
Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.
Bonjour,
Merci pour ta réponse Gado2600, la commande
est en effet très pratique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part environ("username")
Peux tu préciser un peu la structure des formulaires et des tables que tu décris dans ton post ?
Merci
_______________________
Boid'
L'expérience est le nom que l'on donne à la somme de ses erreurs
http://boidot.deviantart.com/
C'est simple.
Je dispose de plusieurs tables :
- Formulaire qui contient tous les noms des formulaires auxquels les accès sont restreints
- Autorisation qui contient l'identifiant d'un groupe, l'identifiant du formulaire et une case à cocher pour dire si oui ou non la personne a accès à ce formulaire.
- Personnel qui contient le nom de l'utilisateur de la session et son identifiant de groupe.
- Groupe qui contient le nom du groupe et l'identifiant du groupe
Je dispose aussi d'un formulaire gestion des accès (généré dynamiquement en fonction des données contenues dans ma table Formulaire)
A partir de ce formulaire, lors de l'édition ou l'ajout d'un groupe, je récupère toutes les informations sur les accès aux formulaires liées à ce groupe.
Donc lors de la sauvegarde de ce groupe, j'enregistre tout et je supprime un éventuel formulaire d'accueil concernant ce groupe.
Une fois la suppression de ce formulaire d'accueil faite, je fais une copie du formulaire d'Accueil original qui contient évidemment tous les codes dont j'ai besoin dedans en [procédure événementielle] pour l'ouverture des formulaires.
Après cette copie faite (toujours lors de la sauvegarde des données du groupe), je rentre en mode édition de ce nouveau formulaire d'accueil, afin d'y placer des boutons (contenant le nom des formulaires autorisés au groupe) et je leur attribue une procédure événementielle.
Une fois cela fait, il n'y a plus qu'à le fermer en sauvegardant le nouveau formulaire, à attribuer un groupe à une personne dont l'identifiant de la session serait la clé lors du chargement d'une page d'accueil.
Voilà, je pense que c'est plus ou moins clair lol
Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.
Bonjour,
La Sécurité utilisateur n'a pas disparue mais a été rendue indisponible.
Il y a l'utilitaire UGAM qui permet de continuer à l'utiliser en 2007. Ce n'est pas supporté par Développez. Voir Google.
Cordialement,
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
Bonjour,
merci pour ces réponses. Cela me semble un peu lourd à gérer, surtout l'histoire de la génération d'un nouveau formulaire d'accueil à partir d'un formulaire original auquel on ne touche jamais.
J'imagine qu'on peut aller plus loin en ajoutant des tables qui listent tous les controles de tous les formulaires et qui donnes accès à différents droits selon l'utilisateur loggué.
Loufab, toi qui est MVP pour Access, sais-tu pourquoi ils ont décidé de désactiver l'utilitaire de gestion de groupe depuis la version 2007 ?
Aussi, même si ce n'est pas supporté par Développez, y a-t-il des dangers liés à la sécurité à utiliser UGAM ?
Merci
Boid'
_______________________
Boid'
L'expérience est le nom que l'on donne à la somme de ses erreurs
http://boidot.deviantart.com/
UGAM exploite une "faille" qui permet de continuer à utiliser la Sécurité utilisateur.
Comme d'habitude avec la SU il vaut mieux faire une sauvegarde du produit avant toute intervention.Y a t-il un risque ?
Je n'ai pas tester et ce n'est pas maintenu par développez.
Aucune idée. J'avoue que je n'ai pas poser la question.Pourquoi MS a abandonné la SU.
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
La génération d'un nouveau formulaire d'Accueil n'est pas plus lourd qu'un autre formulaire dynamique.
Si tu as la base de ce formulaire, tout se fait ensuite rapidement.
L'avantage que j'ai lors du chargement de ce formulaire d'Accueil lié à un groupe est que je n'ai besoin que de l'identifiant de l'utilisateur, relié à un groupe, qui appellera donc un formulaire du nom Accueil_NomGroupe.
Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.
Bonjour,
J'aurais aimé revenir sur la solution de Gado2600.
Je dois développer une application de gestion d'atelier en tenant compte de certains droits en fonction des utilisateurs.
Pourrais tu détaillé un peu plus ou mettre une copie de ce que tu as développé?
Cela m'aiderait beaucoup pour comprendre ce que tu veux dire par la génération d'un formulaire et par l'effacement d'un formulaire d'acceuil?
Par ailleurs, je comptais travailler avec la définition de menu / ruban propre à chaque groupe. N'est ce pas plus simple?
Merci d'avance de votre support
Bonsoir,
Alors j'ai le formulaire d'accès qui se présente sous cette forme là :
Dans ce formulaire, j'ai ma liste des groupes et la liste des formulaires (que j'ai développé dynamiquement parce que je commence à connaître l'entreprise qui m'a demandé cela ^^).
Niveau code, cela se passe comme cela :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 Private Sub Save_Click() ' Définition des variables Dim mabase As DAO.Database Dim recUsers, recAuto, recForm As DAO.Recordset Dim Nom, NomTemporaire As String Dim RC As Boolean Dim NumUsers, NumForm, i, x, y, l, w As Integer Dim Formulaire As Form Dim Bouton As CommandButton ' Ouverture des recordset nécessaires Set mabase = CurrentDb ' Utiliser pour avoir la liste des groupes et leur identifiant Set recUsers = mabase.OpenRecordset("Gestion Groupe Users") ' Utiliser pour avoir la liste des autorisations des groupes avec l'identifiant du groupe et du formulaire Set recAuto = mabase.OpenRecordset("Autorisation") ' Utiliser pour avoir la liste des formulaires auxquels on veut restreindre les accès Set recForm = mabase.OpenRecordset("Formulaires") i = 0 x = 0 y = 1500 l = 2000 w = 1000 If IsNull(Me.ListeGroupe.Value) Then Me.ListeGroupe.Value = "Nouveau Groupe" End If If Me.ListeGroupe.Value = "Nouveau Groupe" Then MsgBox (Me.ListeGroupe.Value) Nom = InputBox("Entrez un nouveau nom de groupe") recUsers.AddNew recUsers.Fields("NomGroupe").Value = Nom recUsers.Update RC = False recUsers.MoveFirst While recUsers.EOF = False And RC = False If recUsers.Fields("NomGroupe").Value = Nom Then NumUsers = recUsers.Fields("IDGroupe").Value RC = True End If recUsers.MoveNext Wend recForm.MoveFirst ' Phase de reconstruction du formulaire d'accueil du groupe déjà existant DoCmd.OpenForm "Accueil_" & Nom, acDesign While recForm.EOF = False NumForm = recForm.Fields("IDFormulaire").Value recAuto.AddNew recAuto.Fields("IDGroupe").Value = NumUsers recAuto.Fields("IDFormulaire").Value = NumForm recAuto.Fields("Autorise").Value = Me.Controls(recForm.Fields("NomFormulaire").Value & 1).Value recAuto.Update If Me.Controls(recForm.Fields("NomFormulaire").Value & 1).Value = True Then x = i * 2500 + 500 i = i + 1 Set Bouton = CreateControl("Accueil_" & Nom, acCommandButton, , , , x, y, l, w) Bouton.Name = "Bouton" & recForm.Fields("IDFormulaire").Value Bouton.Caption = recForm.Fields("NomFormulaire").Value Bouton.OnClick = "[Procédure événementielle]" End If If i = 4 Then y = y + 1500 i = 0 End If recForm.MoveNext Wend DoCmd.Close acForm, "Accueil", acSaveNo DoCmd.Close acForm, "Accueil_" & Nom, acSaveYes Else Nom = Me.ListeGroupe.Value recUsers.MoveFirst RC = False While recUsers.EOF = False And RC = False If recUsers.Fields("NomGroupe").Value = Nom Then NumUsers = recUsers.Fields("IDGroupe").Value RC = True End If recUsers.MoveNext Wend ' Phase de construction du nouveau formulaire d'accueil avec pour copie le formulaire Accueil contenant déjà tous les codes événementiels DoCmd.DeleteObject acForm, "Accueil_" & Nom DoCmd.CopyObject , "Accueil_" & Nom, acForm, "Accueil" DoCmd.OpenForm "Accueil_" & Nom, acDesign recForm.MoveFirst ' On parcourt la table des formulaires While recForm.EOF = False recAuto.MoveFirst RC = False ' On parcourt la table des autorisations While recAuto.EOF = False And RC = False ' Si on a le numéro d'utilisateur recherché If recAuto.Fields("IDGroupe").Value - NumUsers = 0 Then ' Si on a l'identifiant du formulaire recherché If recAuto.Fields("IDFormulaire").Value = recForm.Fields("IDFormulaire").Value Then ' On édite la donnée d'autorisation recAuto.Edit recAuto.Fields("Autorise").Value = Me.Controls(recForm.Fields("NomFormulaire").Value & 1).Value recAuto.Update RC = True End If End If recAuto.MoveNext Wend If RC = False Then recAuto.AddNew recAuto.Fields("IDGroupe").Value = NumUsers recAuto.Fields("IDFormulaire").Value = recForm.Fields("IDFormulaire").Value recAuto.Fields("Autorise").Value = Me.Controls(recForm.Fields("NomFormulaire").Value & 1).Value recAuto.Update RC = True End If ' On créé le nouveau bouton si le groupe y a droit If RC = True Then If Me.Controls(recForm.Fields("NomFormulaire").Value & 1).Value = True Then x = i * 2500 + 500 i = i + 1 Set Bouton = CreateControl("Accueil_" & Nom, acCommandButton, , , , x, y, l, w) Bouton.Name = "Bouton" & recForm.Fields("IDFormulaire").Value Bouton.Caption = recForm.Fields("NomFormulaire").Value Bouton.OnClick = "[Procédure événementielle]" End If If i = 4 Then y = y + 1500 i = 0 End If End If recForm.MoveNext Wend End If DoCmd.Close acForm, "Accueil_" & Nom, acSaveYes MsgBox ("Sauvegarde réussie") Call Form_Current End Sub
Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.
Bonjour à tous,
Je cherche moi aussi à créer différents groupe ayant chacun des droits différents. J'ai lu un peu le sujet mais je ne comprends pas trop le principe de Gado2600.
Merci à tous de votre aide
Gado,
Merci pour tes infos.
Je regarde cela ce soir et j'espère comprendre un peu plus.
Phil
Bonsoir,
Le principe de ce que j'ai fait est de gérer les utilisateurs via des formulaires d'Accueil différents en fonction de chacun des groupes.
L'information principale que je récupère pour savoir à quel groupe appartient un utilisateur est son login de session avec le code :
Grâce à ce code, je vais chercher dans ma liste d'utilisateurs enregistrés à quel groupe il appartient.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Environ("UserName")
Comme mes formulaires d'accueils sont du nom "Accueil_NomGroupe", je n'ai que le nom à retrouver pour afficher ce formulaire (cette recherche de groupe se fait dans un formulaire d'Ouverture)
La partie création de chacun des formulaires d'Accueil se fait avec le formulaire Gestion Accès (générer dynamiquement pour avoir la liste exacte des formulaires dont les accès sont restreints).
Une fois un groupe mis à jour dans ce formulaire, le formulaire Accueil_NomGroupe s'actualise (ou se créé) en faisant une copie d'un formulaire d'Accueil Original (car il contient les procédures événementielles de chacun des formulaires possible).
Voilà, j'espère que j'ai été plus clair
L'objectif de ce code n'est pas de gérer les utilisateurs un par un mais un groupe d'utilisateurs.
Il est évidemment possible d'adapter ce code pour une gestion d'utilisateur individuels.
Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.
Bonjour,
J'essaye de comprendre et d'appliquer ta méthode.
J'ai quelques questions:
- si j'ai bien compris tu as un formulaire de gestion des accès qui reprend d'une part une combo box dans laquelle tu fais apparaitre la liste des groupes utilisateurs et d'autre part, tu reprends l'ensemble des formulaires nécessitant une autorisation avec une check box?
- le code que tu as fourni s'exécute lors du click sur le bouton Sauvegarder?
- quand tu mentionnes que le formulaire gestion des accès est généré dynamiquement, tu veux dire que lors de l'ouverture, tu parcours la table "formulaire" pour faire apparaitre l'ensemble des formulaires avec accès restreint?
- si je comprend bien l'intérêt du formulaire d'accueil généré automatiquement, c'est de créer un formulaire d'accueil pour chaque groupe et qui ne donnera que les accès aux différents formulaires autorisés?
- en utilisant cette méthode, je ne sais restreindrais les accès aux formulaires se faisant aux travers de boutons? Qu'est ce qu'il en est des accès qui se feraient aux travers du menu?
Merci d'avance
Bonsoir,
Réponses à pwfdw :
- Oui c'est bien cela
- Oui, encore
- Oui et non. Je charge bien les noms des formulaires auxquels les accès ont BESOIN d'être restreint. Dans ma base de données, il existe des formulaires dont les accès sont possibles à partir d'autres formulaires.
- Oui. Le principe d'avoir un formulaire d'accueil pour chaque groupe permet de limiter les formulaires disponibles. Bien que cela ajoute de nombreux formulaires, c'est la solution la plus efficace et rapide que j'ai trouvé pour le moment. Je suis preneur de solutions si une personne en trouve.
- Accès des formulaires seulement à travers des boutons, oui. De quels menus me parles-tu ?
Pour les détails de ce que j'ai réalisé, regardez ce post :
http://www.developpez.net/forums/d13...-utilisateurs/
Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.
Bonjour Gado,
Quand je parlais de menu, je faisais allusion au ruban que tu peux redéfinir et notamment enlever les menus "windows".
mon idée était de travailler avec des rubans différents en fonction du groupe d'utilisateur.
As tu déja travaillé comme cela? Ton avis?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager