nobpn
Messages postés13Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention 9 janvier 2006
-
14 juin 2004 à 16:28
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDerniè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!
--------------------------------------------------
nobpn
Messages postés13Date d'inscriptionjeudi 22 avril 2004StatutMembreDerniè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!
--------------------------------------------------
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 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