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

Access Discussion :

Autorisation d'accès à une table par VBA


Sujet :

Access

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 239
    Points : 555
    Points
    555
    Par défaut Autorisation d'accès à une table par VBA
    Salut à tous,

    J'ai un fichier .mdw qui sécurise ma base scindée, pas de problème.

    J'aimerais autoriser un utilisateur et un seul à ajouter, effacer et modifier une table, en sachant que cet utilisateur à tous les droits sur tout, et seulement les droits de lecture sur cette table.

    Avez-vous des solutions.

    Merci A+

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 239
    Points : 555
    Points
    555
    Par défaut
    Re,

    J'ai trouvé pour les autorisations d'accès d'un utilisateur pour une table.

    Mais je voudrais le faire pour un groupe, par exemple le groupe SupUser

    Voici le code que j'ai pour un user sur une table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim db As DAO.Database
        Dim wks As DAO.Workspace
        Dim doc As Document
        Set wks = DBEngine.Workspaces(0)
        Set db = wks.OpenDatabase("Chemin complet du fichier.mdb où se trouve la table")
        Set doc = db.Containers("Tables").Documents("T_NomTable")
        doc.UserName = "Master"
        doc.Permissions = dbSecRetrieveData Or dbSecInsertData Or dbSecReplaceData Or dbSecDeleteData
    Je viens de constater que si je met des droits sur ma table alors que celle-ci se trouve dans une BDD scindée, je dois mettre le chemin où se trouve les tables, et non le chemin où est l'appli. sinon, j'ai tout les droits sur cette table si j'ouvre ma BDD où sont les tables.

    Comment puis-je remplacer le chemin complet de la table par autre chose du genre currentproject.

    Merci

    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 239
    Points : 555
    Points
    555
    Par défaut
    Salut,

    Je reviens avec mon problème de droits sur une table dans une BDD scindée.

    Un user qui est dans le groupe SupUser, ne doit pas avoir de droit sur cette table sauf quand le form est ouvert, là, par code j'ajoute les droits ajouter données, modifier, effacer et lisre et modifier la structure.

    Une fois qu'il ferme le form, je lui retire les droits.

    1) J'aimerais le faire pour le groupe et non pour un user.
    2) Quel chemin pour la BDD dois-je mettre dans le code VBA, celui de ma Base où se trouve les tables ou celui où se trouve le form, les requêtes etc...

    Pourriez-vous m'aider
    Merci
    A+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 239
    Points : 555
    Points
    555
    Par défaut
    Re,

    J'ai un code un ADOX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        '************* ADOX *************
        Dim Cat As New ADOX.Catalog
        Cat.ActiveConnection = CurrentProject.Connection
        Set oWs = DBEngine.Workspaces(0)
        Cat.Groups("SupUser").SetPermissions "T_GestionUserGroupe", adPermObjTable, adAccessSet, adRightRead Or adRightInsert Or adRightUpdate Or adRightDelete
    Mais à l'ouverture du form j'ai un message :
    Impossible de lire les enregistrements, pas d'autorisation de lecture sur la table.

    Avez-vous une idée?

    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 239
    Points : 555
    Points
    555
    Par défaut
    Re,

    Voilà, j'ai trouvé.

    En fait il fallait que je mette le droits lire les données au groupe pour la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        '************* ADOX *************
        Dim Cat As New ADOX.Catalog
        Set Cat = New ADOX.Catalog
        Dim ows As Workspace
        Dim Grp As DAO.Group
     
        Cat.ActiveConnection = CurrentProject.Connection
        Cat.Groups("SupUsers").SetPermissions "NomTable", adPermObjTable, adAccessSet, adRightRead Or adRightInsert Or adRightUpdate Or adRightDelete
        Set Cat = Nothing
    Merci
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Créaction dans champ calculé dans une table par VBA
    Par FewRa dans le forum VBA Access
    Réponses: 0
    Dernier message: 12/08/2014, 16h19
  2. remplir une table par VBA
    Par gwen_oc dans le forum Access
    Réponses: 3
    Dernier message: 22/02/2007, 15h04
  3. Réponses: 16
    Dernier message: 04/01/2007, 13h40
  4. Réponses: 10
    Dernier message: 24/08/2006, 19h52
  5. Accès à une Table Indexée (index composite) en VBA ACCESS
    Par Denis VERNON dans le forum Access
    Réponses: 1
    Dernier message: 21/04/2006, 18h47

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