【问题标题】:Show/Hide different Controls for different Users MS Access Form为不同的用户显示/隐藏不同的控件 MS Access 表单
【发布时间】:2018-04-11 17:14:22
【问题描述】:

我在 MS Access 中设计了一个登录表单。我有不同的用户角色,并希望在不同的用户登录时显示不同的控件。例如,如果管理员登录,控件应该是不同的,普通用户应该能够使用不同的控件。

我为单击时的登录按钮编写的vba代码如下(此代码用于Login_Form):

Private Sub Btn_SignIn_Click()

IF Me.Txt_UserID.Value = "admin" AND Me.Txt_Password = "123admin"  
                                 AND Me.Cmbo_UserRole.Value = "DBA"  
THEN

    MsgBox "Welcome to RMS", vbOKOnly, "Logged in as Admin!"

    DoCmd.OpenForm "Main_Form"
    --How can I show/hide controls here at Main_Form
End If  

Main_Form 有不同的控件,但我无法访问Btn_SignIn_Click() 函数中的Main_Form 控件。这样,我就可以显示或隐藏控件了。

【问题讨论】:

    标签: vba ms-access controls show-hide


    【解决方案1】:
    with forms("main_form")
       !control1.visible = true
       !control2.visible = true
    end with
    

    如果有很多这样的控件,你也可以使用

    for each ctl in form_main_form
       ctl.visible = true
    next ctl
    

    【讨论】:

      【解决方案2】:

      您可以创建一个程序来验证用户是否为管理员。 例如:

      Private Sub Main_Form_Load(UserLevel as String)
      
        If UserLevel = "admin" Then
           Your code here to show controls.
        End If
      End Sub
      

      我建议默认隐藏只应由管理员使用的控件。

      然后您可以在其他问题中调用 UserForm 发送参数作为其他求解器:

      Passing parameters between forms in MS Access

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多