Formulaire de démarrage ACCESS ?

Résolu/Fermé
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007 - 15 déc. 2006 à 07:51
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 - 21 déc. 2006 à 11:28
bonjour

je construis une base de données access et un certains nombre d'utilisateurs vont pouvoir soit consulter soit pour d'autres rentrer des données.

je vais donc créer deux groupes de travail : utilisateur et opérateur

4 directions seront amenées à consulter cette base.

j'ai donc créer un formulaire de démarrage, en distinguant ces 4 directions avec leurs formulaires à consulter etc... une macro s'effectue à l'ouverture pour qu'il n'accede seulement à leurs données
cependant ils peuvent malgré tout dans ce formulaire démarrage aller cliquer sur une autre direction
comment faire pour que chacun n'accede seulement à sa partie ? et que les autres soient indispo ?
je vous remercie beaucoup !!!!
bonne journée à tous
A voir également:

21 réponses

blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
15 déc. 2006 à 10:15
Salut,

ce que tu peux faire, c'est un formulaire avec des onglets où chaque onglet sera masqué/démasqué en fonction du profil de l'utilisateur (stocké dans ta base)...
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
15 déc. 2006 à 21:32
super !!! merci blux je vais m'orienter de ce côté en espérant que j'arrive à faire fonctionner ça !!!
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
15 déc. 2006 à 22:34
encore une petite question...

comment faire pour masquer ou démasquer en fonction de l'utilisateur ???

Merrrrrciii
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
18 déc. 2006 à 16:36
Supposons que tu aies un formulaire proncipal avec un contrôle onglet où les onglets sont nommés onglet1, onglet2, onglet3...

Il suffit de faire un test sur l'utilisateur dans l'évènement "sur ouverture" du formulaire principal, et tu tapes ensuite la séquence de masquage/démasquage des onglets auxquels chacun a droit.
If User = "chef"
  me.onglet1.visible=true
  me.onglet2.visible=false
else
  me.onglet1.visible=false
  me.onglet2.visible=true
end if

A toi ensuite de mettre ce qu'il faut dans chaque onglet pour qu'il ne travaille que sur les données qui sont les siennes...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
18 déc. 2006 à 21:17
snif...

j'ai donc repris ce que tu m'avais dit !

au départ quand je commence à taper j'ai :

Private Sub Form_Open(Cancel As Integer)
je suppose donc qu'il faut que je note le nom de mon formulaire à la place de form ?

ensuite quand je tape ma procédure ::::>erreur de compilation : then ou goto !!!!

If User = "chef" ::::::::::::::::::::::>je tape le nom de l'utilisateur
me.onglet1.visible=true ::::::::::> le nom de l'onglet visible
me.onglet2.visible=false :::::::::> le nom de l'onglet invisible voire plus car 4 onglets doivent etre cachés
else
me.onglet1.visible=false ::::::::::>et là je comprends plus rien !
me.onglet2.visible=true::::::::::::>pourquoi ces deux phrases ??!
end if



après j'imagine que je refais la même chose avec les autres utilisateurs !!

vraiment je suis nulle là... désolée.... :-(
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
19 déc. 2006 à 09:35
je suppose donc qu'il faut que je note le nom de mon formulaire à la place de form ?
Non, puisque le code est mis dans le formulaire, il s'aplique à lui...

ensuite quand je tape ma procédure ::::>erreur de compilation : then ou goto !!!!
C'est normal, j'ai oublié un then à la fin du if...;-)

me.onglet1.visible=false ::::::::::>et là je comprends plus rien !
me.onglet2.visible=true::::::::::::>pourquoi ces deux phrases ??!

Si tu caches l'onglet1 pour tout le monde sauf chef, il faut faire l'inverse quand c'est pas chef...

Je te propose autre chose (plus facile à gérer) :
Dim Nom As String
' on cache tout
Me.Page1.Visible = False
Me.Page2.Visible = False
Me.Page3.Visible = False
Nom = Chx_Nom.Value
' On affiche en fonction du user
Select Case Nom
Case "user1"
    Me.Page1.Visible = True
    Me.Page2.Visible = False
    Me.Page3.Visible = False
Case "user2"
    Me.Page1.Visible = False
    Me.Page2.Visible = True
    Me.Page3.Visible = False
Case "user3"
    Me.Page1.Visible = False
    Me.Page2.Visible = False
    Me.Page3.Visible = True
Case Else
    MsgBox "utilisateur non reconnu !"
    GoTo Fin:
End Select
Fin:
C'est toujours à copier dans l'évènement 'sur ouverture' du formulaire qui contient ton contrôle onglet...
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
19 déc. 2006 à 13:35
Merci de ta réponse
je viens de faire mes essais...

Quand je lance mon appli avec mon login, la phrase
Nom = Chx_Nom.Value
se met en jaune....

de plus faut il aussi que je mette mon login dans les users ?

Merci...blux
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
19 déc. 2006 à 13:42
En fait, c'est le nom d'une zone dans laquelle je saisis un nom pour mes tests, mais dans ton cas, le nom est récupéré par une autre méthode, je suppose (user de connexion windows, identifiant rentré par textbox ou autre...), c'est ce que tu appelles ton "login", mais je ne sais pas ce qu'il signifie...
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
19 déc. 2006 à 14:02
j'ai crée des "utilisateurs" dans le groupe "lecture seule" dans le module assistant sécurité au niveau utilisateur
c'est ce nom là qu'il doit aller chercher...
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
19 déc. 2006 à 14:56
Dans ce cas, il faut tester UserName, c'est l'utilisateur courant de la base ACCESS...
Select Case UserName...
--
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
19 déc. 2006 à 15:25
selon ta procédure :
Dim Nom As String
' on cache tout
Me.Page1.Visible = False
Me.Page2.Visible = False
Me.Page3.Visible = False
Nom = Chx_Nom.Value
' On affiche en fonction du user
Select Case Nom
Case "user1"
Me.Page1.Visible = True
Me.Page2.Visible = False
Me.Page3.Visible = False
Case "user2"
Me.Page1.Visible = False
Me.Page2.Visible = True
Me.Page3.Visible = False
Case "user3"
Me.Page1.Visible = False
Me.Page2.Visible = False
Me.Page3.Visible = True
Case Else
MsgBox "utilisateur non reconnu !"
GoTo Fin:
End Select
Fin:

je remplace UserName partout où se trouve le mot nom en gras ?
c'est vraiment pas simple de programmer ! quand on y connait rien !
pfffff !!!
thanks
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
19 déc. 2006 à 16:14
Non, tu supprimes les lignes qui y font référence et tu changes la ligne :
Select Case Nom
par
Select Case UserName

0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
19 déc. 2006 à 16:38
je vais pleurer !
je n'ai plus d'erreur dans mon vba par, mais à l'ouverture, j'ai le droit au message suivant : pas d'utilisateur reconnu ! !!!!!!!!!!
mais pourquoi tout s'acharne sur moi !
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
19 déc. 2006 à 16:43
Tu rentres comment ton nom d'utilisateur ?
Quand tu te connectes à la base, il te demande un nom spécial ?

Tu devrais mettre un affichage du nom du user :

Msgbox "#"+UserName+"#" avant le Select Case, comme ça tu pourras voir quelle en est sa valeur...
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
19 déc. 2006 à 21:35
j'utilise de module "assistant sécurité au niveau utilisateur" du menu outils / sécurité
* je choisis de créer un nouveau groupe
*suivant et je coche la première option, je ne change rien d'autre
*ensuite je vais jusqu'à l'onglet des groupes puis je coche lecture seule, ensuite suivant
*je laisse l'option par défaut cochée
* là je tape le nom de l'utilisateur ex : chef
* son mot de passe
* je ne touche pas à la case pid (j'ai peut etre tort)
*je choisis ensuite à quel groupe appartient l'utilisateur donc "chef" au groupe lecture seul"
*suivant et terminé...

et au démarrage d'access il me demande le nom et le mot de passe

j'ai testé le code à rajouter avant select case et il n'apparait rien à l'excusion entre les ##

voilà...
mais.. j'y crois j'y crois !
merci blux

voilà je ne vois pas où est l'erreur...
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
20 déc. 2006 à 08:54
Bon, j'ai jeté un oeil, c'est pas du tout le user auquel je pensais, il faut le trouver avec ça :
Select Case Application.CurrentUser


Quelques références en passant :

https://access.developpez.com/faq/?page=user#currentUser
http://www.info-3000.com/access/resecuritevba.php
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
20 déc. 2006 à 11:19
Merci merci merci mille fois !!!
cela marche !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

c'est super !

Vraiment MERCI blux !
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
20 déc. 2006 à 12:51
Tant mieux...:-)

N'oublie pas de marquer le problème comme résolu...
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
20 déc. 2006 à 13:43
oui c'est fait .. par contre.. je me rends compte que mes utilisateurs peuvent s'il le souhaite afficher la fenetre base de données en faisant F11. Et je ne le souhaite pas !!

il faut donc que je rajoute un code supplémentaire à chaque utilisateur concerné (6 sur 8) afin qu'il ne puissent pas accéder à cette donnée...

je voulais ouvrir un nouveau post.. mais je n'y arrive pas ! il n'apparait pas sur le site
0
blux Messages postés 25997 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 23 avril 2024 3 289
20 déc. 2006 à 14:14
J'ai traité le dossier il y a quelque temps, je te le retrouve...

EDIT :

Tiens, ça a quand même 4 ans !

https://forums.commentcamarche.net/forum/affich-144030-password#6
0
celinete1 Messages postés 21 Date d'inscription mercredi 22 novembre 2006 Statut Membre Dernière intervention 16 janvier 2007
21 déc. 2006 à 10:22
Merci je vais regarder ça de plus près !

ce matin en voulant ouvrir ma base j'ai eu le droit au message suivant :
vous n'avez pas l'autorisation requise pour ouvrir cette objet veuillez contacter votre administrateur !! mais c'est moi !
du coup ma copie de sauvegarde m'a bien servi et j'ai recommencé ma programmation...
je pense que je dois mal définir les niveaux de sécurité... mais pourquoi cela marque le jour même .. et pas le lendemain....
étrange???
0