0
我已经构建了一个函数来检查用户是否是安全组的成员。目前它循环所有的组,但我希望它只循环用户的组。我试图改变功能,但它不断给我一个类型不匹配的错误。VBA - 特定用户的循环安全组
有一个SecurityGroups属性为对象ScUser。当我在For Each循环中使用它时,它会给我一个类型不匹配错误。 对于ScUser.SecurityGroups中的每个SecGroup
下面的代码正常工作。你将如何修改它,因此它只循环用户的组?
Public Function UserHasAccess(SGroup As String) As Boolean
Dim ScUser As CUser
Dim SecGroup As CSecurityGroup
Dim SecGroups As CSecurityGroups
Set ScUser = New CUser
ScUser.Init SessionContext
ScUser.Load SessionContext.CurrentUserID
Set SecGroups = New CSecurityGroups
SecGroups.Init SessionContext
For Each SecGroup In SecGroups
Debug.Print SecGroup.Fields(SecurityGroup_fld_NAME)
If SecGroup.Fields(SecurityGroup_fld_NAME) = SGroup Then
UserHasAccessNEW = True
Exit Function
End If
Next
End Function
“工作正常” 和 “引发类型不匹配错误” 是相当矛盾的。介意澄清? –
它工作正常,但它循环所有的安全组。我只想让它循环一个特定用户的安全组。 – SQLiz
@ Mat'sMug我认为OP是说发布的代码工作正常,但将循环更改为“For Sccser.SecurityGroups中的每个SecGroup”会导致类型不匹配。 – YowE3K