设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

如何控制不同登陆用户的权限

[复制链接]
跳转到指定楼层
1#
发表于 2002-11-11 04:17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做了一个数据库,用户可以根据密码登陆,如何控制用户浏览数据库的权限
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-11-11 05:48:00 | 只看该作者
我一般是不让用户看到数据库,只看到自己允许看到的界面。做法是在Autoexec宏中调用一个设置主窗体的函数,在此函数中根据不同用户指定不同的主界面。
3#
 楼主| 发表于 2002-11-19 05:24:00 | 只看该作者
具体怎么做,能给出代码吗
4#
发表于 2002-11-19 06:03:00 | 只看该作者

如此:

Function SetMainSwitchBoard()
   
    Select Case UserType()
   
    Case "Other"
        MsgBox "You don't have access to payroll system!"
        DoCmd.Quit
   
    Case "HR_Operator"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_HR"
   
    Case "ayroll_Operator"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_Payroll"
   
    Case "Operator"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_admin"
   
    Case "Admin"
        Application.SetOption "Built-In ToolBars Available", True
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "AutoKeys"
        Application.SetOption "Can Customize Toolbars", True
        DoCmd.OpenForm "MainSwitchBoard_Admin"
   
    Case "Vacation"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_Vacation"
   
    Case "Finance_Operator", "Finance_Inquiry"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_Journal"

    Case "Finance_Admin"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_Finance"
   
    Case "HR_Inquiry"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_HR_Inquiry"
   
    Case "ayroll_Inquiry"
        Application.SetOption "Built-In ToolBars Available", False
        Application.SetOption "Can Customize Toolbars", False
        DoCmd.ShowToolbar "MyToolBar", A_TOOLBAR_YES
        Application.SetOption "Key Assignment Macro", "MyKeyHandle"
        Application.MenuBar = "MyMenuBar"
        DoCmd.OpenForm "MainSwitchBoard_Payroll_Inquiry"
        
    Case Else
        MsgBox "You don't have access to payroll system!"
        DoCmd.Quit
   
    End Select
   
   
End Function

Function UserType()
On Error GoTo Err_userType

    Dim usrCurUser As User
    Dim oneGroup As Group
    Dim blnAdmin, blnInquiry, blnOperator, blnHR, blnPayroll, blnFinance, blnVacation, blnFinanceAdmin As Boolean
    Dim strResult As String
   
    'Set usrCurUser = CurrentUser()
    If CurrentUser() = "HRMS_Admin" Then
        UserType = "admin"
        GoTo Exit_UserType
    End If
   
5#
发表于 2002-11-19 16:43:00 | 只看该作者

主意不错

这个主意很不错。不过我研究过ACCESS里的权限问题,我觉得也可以解决吧。对于每个表窗体查询的操作也可以设置权限。只是有点麻烦。楼上仁兄的源代码可以实现哪些功能啊?请不吝赐教!多谢。[em19]
6#
发表于 2002-11-19 19:55:00 | 只看该作者
对每个数据库对象进行授权确实很麻烦。我一般是将所有用户都加入一个授权组,在上例中没有体现出来,将此组授予表,查询,窗体的修改数据权限,而对窗体,报表,宏只可运行。然后再创建一些用户分类组,如上例中的"ayroll","HR","Inquiry","Operator","payroll"/"HR"表示该用户可以使用Payroll/HR的功能,"Inquiry"/"Operator"表示该用户只可以查询/维护相应的数据,但其实这些组在Access中不授予任何权限,只是为了在进入程序时为其指定事先做好的主窗体。
这样可以保证该用户只可以看到自己可以使用的功能(用户接触不到数据库)。这种分类方法适合于用户比较多的系统。
7#
发表于 2002-11-20 18:40:00 | 只看该作者
是啊是啊。很好的做法。我们这里在考虑数据的分类操作使用的问题。我想设置权限应该是比较好的办法。:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 19:22 , Processed in 0.090189 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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