设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 684|回复: 1
打印 上一主题 下一主题

[其它] [求助]如何判断用户所属的组?

[复制链接]
跳转到指定楼层
1#
发表于 2004-9-18 19:54:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据库设置了用户级安全机制后,如何使用VBA代码才能读取登录用户所属的组并赋值给一个变量?

我是想实现根据登录用户所属的组来决定某些菜单项是否可用的功能,请指教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-9-20 06:26:00 | 只看该作者
Here it is .........

Groups 和 Users 的 Append、ChangePassword 方法范例 (VB)



本范例通过向系统中添加新的 Group 和新的 User 来演示 Groups 的 Append 方法和 Users 的 Append 方法。新的 Group 被追加到新的 User 的 Groups 集合中。结果,新的 User 被添加到 Group 中。同样,使用 ChangePassword 方法来指定 User 密码。

Sub GroupX()

    Dim cat As ADOX.Catalog

    Dim usrNew As ADOX.User

    Dim usrLoop As ADOX.User

    Dim grpLoop As ADOX.Group

   

    Set cat = New ADOX.Catalog

    cat.ActiveConnection = "rovider=Microsoft.Jet.OLEDB.4.0;" & _

        "Data Source=c:\Program Files\" & _

        "Microsoft Office\Office\Samples\Northwind.mdb;" & _

        "jet oledb:system database=c:\samples\system.mdb"

    With cat

        'Create and append new group with a string.

        .Groups.Append "Accounting"

      

        ' Create and append new user with an object.

        Set usrNew = New ADOX.User

        usrNew.Name = "at Smith"

        usrNew.ChangePassword "", "assword1"

        .Users.Append usrNew

        ' Make the user Pat Smith a member of the

        ' Accounting group by creating and adding the

        ' appropriate Group object to the user's Groups

        ' collection. The same is accomplished if a User

        ' object representing Pat Smith is created and

        ' appended to the Accounting group Users collection

        usrNew.Groups.Append "Accounting"

      

        ' Enumerate all User objects in the

        ' catalog's Users collection.

        For Each usrLoop In .Users

            Debug.Print "  " & usrLoop.Name

            Debug.Print "    Belongs to these groups:"

            ' Enumerate all Group objects in each User

            ' object's Groups collection.

            If usrLoop.Groups.Count <> 0 Then

                For Each grpLoop In usrLoop.Groups

                    Debug.Print "    " & grpLoop.Name

                Next grpLoop

            Else

                Debug.Print "    [None]"

            End If

        Next usrLoop

        ' Enumerate all Group objects in the default

        ' workspace's Groups collection.

        For Each grpLoop In .Groups

            Debug.Print "  " & grpLoop.Name

            Debug.Print "    Has as its members:"

            ' Enumerate all User objects in each Group

            ' object's Users collection.

            If grpLoop.Users.Count <> 0 Then

                For Each usrLoop In grpLoop.Users

                    Debug.Print "    " & usrLoop.Name

                Next usrLoop

            Else

                Debug.Print "    [None]"

            End If

        Next grpLoop

        

        ' Delete new User and Group objects because this

        ' is only a demonstration.

        .Users.Delete "Pat Smith"

        .Groups.Delete "Accounting"

    End With

End Sub



            If grpLoop.Users.Count <> 0 Then

                For Each usrLoop In grpLoop.Users

                    Debug.Print "    " & usrLoop.Name

                Next usrLoop

            Else

                Debug.Print "    [None]"

            End If

        Next grpLoop

        

        ' Delete new User and Group objects because this

        ' is only a demonstration.

        .Users.Delete "Pat Smith"

        .Groups.Delete "Accounting"

    End With

End Sub

[此贴子已经被作者于2004-9-19 22:33:23编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-2 13:33 , Processed in 0.082832 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表