19. februar 2002 - 10:33Der er
27 kommentarer og 2 løsninger
Fejl (VBA)
Når jeg kører nedenstående kode, som jeg har fået fra en anden hjælper her på eksperten.....
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
Private Sub Kommandoknap1_Click() If MemberOfGroup("Administratorer") Then MsgBox "Du er medlem af gruppen Administrators" Else MsgBox "Du er ikke medlem af gruppen Administrators" End If End Sub
....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)
Nope, virker stadig ikke, proaccess, samme fejl. Ved ikke om dette kan hjælpe til at finde fejlen, men når jeg i funktionen direkte indtaster et 0, 1 eller 2, kommer der ingen fejl. (jeg har 3 forskellige grupper i databasen)
Det er så også i orden.........det får det da bare, sagen er bare den at jeg ikke ved hvilket index Administratorer har, hvilket ikke er det største problem, da der kun er 3 grupper......men ligegyldigt om jeg prøver med tallet 0, 1 eller 2 er det kun "else" delen der bliver afviklet: "Du er ikke medlem af gruppen Administrators"
Public Function MemberOfGroup(GroupToCheck As Integer) 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
Private Sub Kommandoknap1_Click() If MemberOfGroup(0) Then MsgBox "Du er medlem af gruppen Administrators" Else MsgBox "Du er ikke medlem af gruppen Administrators" End If End Sub
Public Function MemberOfGroup(GroupToCheck As String) As Boolean Dim wspWorkspace As Workspace Dim grpGroup As Group Dim usrUsers As User Dim grpIndex As New Group
MemberOfGroup = False 'Default for the function is false.
Set wspWorkspace = DBEngine.Workspaces(0) For Each grpGroup In wspWorkspace.Groups If grpGroup.Name = GroupToCheck Then For Each usrUsers In grpGroup.Users If usrUsers.Name = gstrCurrentUser Then MemberOfGroup = True Exit Function End If Next usrUsers End If Next
End Function
Private Sub Kommandoknap1_Click() If MemberOfGroup("Administratorer") Then MsgBox "Du er medlem af gruppen Administrators" Else MsgBox "Du er ikke medlem af gruppen Administrators" End If End Sub
You can try looping through the group collection and printing them out. In acces you can also print Groups/users from the menu User and Group Accounts in Tools+Security (Access 97)
Private Sub Kommandoknap1_Click() If MemberOfGroup("Admins") Then MsgBox "Du er medlem af gruppen Administrators" Else MsgBox "Du er ikke medlem af gruppen Administrators" End If End Sub
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
Sorry, virker nu!!!! Hvor dumt! If usrUsers.Name = gstrCurrentUser Then Skal jo selvfølgelig være: If usrUsers.Name = CurrentUser Then !!!!!!!!!!!!!!!!!! ARRRRGGHHH!!!! :(
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.