IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Droit Ecriture dans un formulaire en fonction de opérateur


Sujet :

IHM

  1. #1
    Membre habitué Avatar de taz devil
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Avril 2012
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2012
    Messages : 298
    Points : 141
    Points
    141
    Par défaut Droit Ecriture dans un formulaire en fonction de opérateur
    Bonjour
    il s agit d un formulaire de saisie pour certains utilisateurs et de lecture pour d autres
    exemple :
    un utilisateur taz se connecte par rdp sur une base kiki . il ouvre le formulaire dev
    un utilisateur devil se connecte par rdp sur une base kiki . il ouvre le formulaire dev

    je voudrais que taz puisse renseigner la base kiki a partir du formulaire dev et que
    devil ne puisse que voir les données du formulaire dev met ne puisse pas les modiffié
    ce code exist il ? Ou dois je crée 2 formulaires un pour taz et le meme verrouillé pour Dévil

    Dans mes bases antérieurs j avais résolu le soucis par les droits utilisateurs sous serveur 2012 mais la vu que chaque utilisateur attaque la meme base je ne peux plus utiliser cette technique

    merci
    il faut de tout pour faire un monde

  2. #2
    rnd
    rnd est déconnecté
    Membre habitué Avatar de rnd
    Homme Profil pro
    Prestataire indépendant
    Inscrit en
    Mars 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Prestataire indépendant

    Informations forums :
    Inscription : Mars 2004
    Messages : 142
    Points : 188
    Points
    188
    Par défaut
    Bonjour,

    Si tu est bien sous Ac 2003 (et pas 2013) en cherchant dans les tutoriel, tu aurais trouvé cela http://loufab.developpez.com/tutorie...s/securite/#LV chapitre V

    Cdt, Renaud.
    "Si un jour on te reproche que ton travail, n'est pas un travail de professionnel, dis-toi bien que:
    Des amateurs ont construit l'arche de Noé et des professionnels le Titanic."

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    631
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 631
    Points : 360
    Points
    360
    Par défaut
    J'ai été confronté à une problématique semblable et qui pourrait facilement être adaptable à ton problème
    Voici comment je l'ai résolue
    1. j'ai créé une table TblDroit qui contient une option et un utilisateur
    2. j'ai récupéré un module qui me permet de récupérer l'utilisateur de la session active
    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
    Option Compare Database
    Option Explicit
     
    Declare Function WNetGetUser Lib "mpr" Alias "WNetGetUserA" (ByVal lpName As String, ByVal _
    lpUserName As String, lpnLength As Long) As Long
     
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
     
     
    Const NoError = 0
    Function GetUserName() As String
     
       ' Buffer size for the return string.
       Const lpnLength As Integer = 255
     
       ' Get return buffer space.
       Dim Status As Integer
     
       ' For getting user information.
       Dim lpName, lpUserName As String
     
       ' Assign the buffer size constant to lpUserName.
       lpUserName = Space$(lpnLength + 1)
     
       ' Get the log-on name of the person using product.
       Status = WNetGetUser(lpName, lpUserName, lpnLength)
     
       ' See whether error occurred.
       If Status = NoError Then
          ' This line removes the null character. Strings in C are null-
          ' terminated. Strings in Visual Basic are not null-terminated.
          ' The null character must be removed from the C strings to be used
          ' cleanly in Visual Basic.
          lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
       Else
     
          ' An error occurred.
          MsgBox "Unable to get the name."
          End
       End If
     
       ' Display the name of the person logged on to the machine.
       'MsgBox "The person logged on this machine is: " & lpUserName
     
     GetUserName = lpUserName
     
    End Function
    3. J'ai créé une requête sur la table TblDroit qui fait appel au module précédent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TblDroit.DrOpt, TblOption.opdesc, TblDroit.DrUser
    FROM TblDroit INNER JOIN TblOption ON TblDroit.DrOpt = TblOption.opoption
    WHERE (((TblDroit.DrUser)=getusername()))
    ORDER BY TblDroit.DrOpt;
    4. J'ai créé un module qui vérifie si l'utilisateur concerné bénéficie des droits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function pFctRechDroit(IntDroit As Integer) As Boolean
     
        Dim RecDroit As DAO.Recordset
        Set RecDroit = CurrentDb.OpenRecordset("Select * From QryDroit where dropt=" & IntDroit)
     
        If RecDroit.EOF Then
            pFctRechDroit = False
            MsgBox "Accès refusé", , "Gestion des Droits"
        Else
            pFctRechDroit = True
        End If
        RecDroit.Close
     
    End Function
    5. Pour vérifier les droits, je le teste de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If pFctRechDroit(30) = True Then
    Docmd.OpenForm "Mon Formulaire"
    Else
    DoCmd.OpenForm "Mon Formulaire",,,,acFormReadOnly
    End If
    Ca peut être facilement adapté à ton souhait

  4. #4
    Membre habitué Avatar de taz devil
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Avril 2012
    Messages
    298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2012
    Messages : 298
    Points : 141
    Points
    141
    Par défaut Merci fclus
    Je v tester sa merci
    il faut de tout pour faire un monde

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/03/2014, 19h42
  2. Réponses: 10
    Dernier message: 27/08/2010, 11h04
  3. Réponses: 5
    Dernier message: 06/12/2008, 15h26
  4. Réponses: 1
    Dernier message: 04/05/2007, 12h15
  5. Réponses: 4
    Dernier message: 12/06/2006, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo