Changer les droits d'ecriture d'une table

nobpn Messages postés 13 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 9 janvier 2006 - 14 juin 2004 à 16:28
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 14 juin 2004 à 20:56
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

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 17:42
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
0
nobpn Messages postés 13 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 9 janvier 2006
14 juin 2004 à 20:48
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!
--------------------------------------------------
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 20:56
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
0