Avatar billede puppetmaster Nybegynder
19. februar 2002 - 09:00 Der 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?
Avatar billede jkrons Professor
19. februar 2002 - 09:23 #1
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.
Avatar billede puppetmaster Nybegynder
19. februar 2002 - 09:53 #2
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!)
Avatar billede jkrons Professor
19. februar 2002 - 10:05 #3
Selv tak
Avatar billede puppetmaster Nybegynder
19. februar 2002 - 10:17 #4
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?
Avatar billede jkrons Professor
19. februar 2002 - 11:06 #5
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.
Avatar billede proaccess Nybegynder
19. februar 2002 - 11:17 #6
>jkrons: Vi fandt efterfølgende ud af at de "medfødte" grupper er på ENGELSK!!!

  Administratorer => Admins

det er vel logisk hvis man hedder Bill...
Avatar billede jkrons Professor
19. februar 2002 - 11:24 #7
Jamen er det ikke bare herligt...

Den havde jeg ikke selv lige tænkt på. Tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester