Changer les droits d'ecriture d'une table

Signaler
Messages postés
13
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
9 janvier 2006
-
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
-
Salut à tous,

J'ai un gros problème, J'ai réalisé une base ou plusieurs personnes doivent entrer des données.

Je veux mettre en place une gestion des droits d'écriture sur les tables.

User1 = ecriture Tab1, lecture tab2
User2 = Lecture Tab1, ecriture tab2
User 3 = Tous les droits.

Je veux ppas utilisé le gestionnaire intégré dans ACCESS car une fois lancé, il est valable pour toutes les bases.

Je voudrais dans mon code faire un truc du genre :
if NomUser = "user1" then
Tab1.ReadOnly = true
Tab2.Write = true
end if

Ces propriété existent pas, je galère depuis longtemps dessus, Si qqn a trouvé coment faire...

D'avance merci!

--------------------------------------------------
Me... That's all, that's enough!
--------------------------------------------------

3 réponses

Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
6
eh ... dans access, si tu prend l'interface, tu es capapble de dire certaines form les droit sont à true et d'autre form sont a false

outils -> sécurité -> autorisations d'accès

tu as une liste déroulante avec toute tes forms
Messages postés
13
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
9 janvier 2006

Merci pour ta réponse.

Mais en fait, pour utiliser ca, tu utilise l'interface, donc tu dois définir des groupes / utilisateurs avec des mots de passe, donc tu les défini pour toutes les bases... Et ca je veux pas.

Je veux gérer direct dans le code, aprés le passage dans mon petit formulaire de Log.

Si tu défini par ca, sans mettre de mot de passe, tous les utilisateur sont en Admin alors que je veux définir des utilisateurs différents.

Merci quand meme.

--------------------------------------------------
Me... That's all, that's enough!
--------------------------------------------------
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
6
ouin, je préfère défini un group puis mettre un usager dans un group

sinon tout ce que je peux te donner pour t'aider c'est ceci. Le premier permet de savoir le group où l'utilisateur fait parti et le 2e permet de changer un mot de passe. Je sais que c,set pas ce que tu veux, mais ta réponse va tourné autour de ça. ça sera à l'intérieur du DBEngine.Workspaces(0)

Public Function USAGER(groupe As String) As Boolean
    Dim wrk As Workspace
    Dim Usr As User

    USAGER = False
    Set wrk = DBEngine.Workspaces(0)
    With wrk
        With .Groups(groupe)
            For Each Usr In .Users
                If UCase(Usr.NAME) = UCase(CurrentUser()) Then
                    USAGER = True
                End If
            Next
        End With
    End With
    Set wrk = Nothing
End Function


Private Sub VERIF_NOUV_BeforeUpdate(Cancel As Integer)
    
On Error GoTo VERIF_NOUV_BeforeUpdate_Error
    
    If Not StrComp(IIf(IsNull(Me!NOUVEAU_MOT), "", Me!NOUVEAU_MOT), IIf(IsNull(Me!VERIF_NOUV), "", Me!VERIF_NOUV), 0) = 0 Then
        MsgBox "La vérification a échouée.  Veuillez réécrire votre nouveau mot de passe afin de le vérifier.", 64, "Message à l'usager"
        DoCmd.CancelEvent
    Else
        DBEngine.Workspaces(0).Users(CurrentUser()).NewPassword IIf(IsNull(Me!ANCIEN_MOT), "", Me!ANCIEN_MOT), IIf(IsNull(Me!NOUVEAU_MOT), "", Me!NOUVEAU_MOT)
        MsgBox "Votre mot de passe a été changé.", 64, "Message à l'usager"
        DoCmd.Close
    End If

VERIF_NOUV_BeforeUpdate_Exit:
    Exit Sub

VERIF_NOUV_BeforeUpdate_Error:
    MsgBox "L'ancien mot de passe que vous avez écrit n'est pas valide", 64, "Message à l'usager"
    DoCmd.Close
    GoTo VERIF_NOUV_BeforeUpdate_Exit
       
End Sub