19. februar 2002 - 09:00Der er
6 kommentarer og 1 løsning
CurrentUser/CurrentGroup?
Jeg stiller spørgsmålet igen, da jeg ikke selv fandt det rette svar på det: I Access kan man bruge currentuser (i VBA) til at finde navnet på den bruger der p.t. er logget på, og kan så tilpasse f.eks. en formular iht. til vedkommendes status, så han/hun kan bruge administrator-knappen. I mit tilfælde ønsker jeg samme grad af kontrol, bare implementeret på gruppeniveau. Kan dette lade sig gøre? Hvis ja, Hvordan?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
En bruger kan tilhør mange grupper. Derfor kan man ikke umiddelbart slutte hvilken gruppe, der er tale om, når en bruger logger på. Hvis du derimod ønsker at teste om en bruger er medlem af en på forhånd given gruppe, og så tilpasse i forhold til det, så fandt jeg engang dette indlæg i en nyhedsgruppe:
Try this funcion:
Public Function MemberOfGroup(GroupToCheck As String) As Boolean Dim wspWorkspace As Workspace Dim grpGroup As Group Dim usrUsers As User
MemberOfGroup = False 'Default for the function is false.
Set wspWorkspace = DBEngine.Workspaces(0) Set grpGroup = wspWorkspace.Groups(GroupToCheck)
For Each usrUsers In grpGroup.Users If usrUsers.Name = gstrCurrentUser Then MemberOfGroup = True Exit Function End If Next usrUsers
End Function
Then use a function call like: If MemberOfGroup("GROUPNAME") Then BLAH
You have to know what the group names are for this to work, but it works quite well. The gstrCurrentUser is assigned by the CurrentUser() function at the startup of my applications so I don't have to keep calling it.
Det var faktisk lige det jeg ledte efter. I min database kan man nemlig kun være medlem af én gruppe af gangen. Takker...(lav lige et svar, så du kan få dine point!)
Når jeg kører den, får jeg følgende fejl: Elementet blev ikke fundet i denne samling.
Og i debuggeren er det følgende linie der bliver highlighted: Set grpGroup = wspWorkspace.Groups(GroupToCheck) Du skulle vel ikke ligge inde med forklaringen på den bug?
Forklaringen er vel at elementet du spørger om, faktisk ikke eksisterer i samlingen. Altså at den gruppe du undrsøger for ikke eksisterer. Jeg har konstateret at jeg får samme fejl, hvis jeg spørger om én af de "medfødte" grupper, fx
If MemberOfGroup("BRUGERE") Then BLAH
men hvis jeg spørger om én af mine egne grupper, fx
If MemberOfGroup("Jan") Then BLAH
så virker det. Og så skal du også lige huske at tilføje DAO 3.6 til dine referencer, hvis du ikke allerede har gjort det.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.