0
ユーザーがセキュリティグループのメンバーであるかどうかを確認する関数を作成しました。現在、すべてのグループをループしますが、ユーザーのグループだけをループします。私は関数を変更しようとしましたが、タイプミスマッチエラーを与え続けます。特定のユーザーのVBAループセキュリティグループ
オブジェクト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投稿されたコードはうまく動作していると言っているが、ループを 'For Each SecGroup In ScUser.SecurityGroups 'に変更すると、タイプミスマッチが発生する。 – YowE3K