显示/隐藏不同用户MS Access Form的不同控件

时间:2017-10-30 16:31:09

标签: vba ms-access controls show-hide

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

我在点击时为SignIn按钮编写的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有不同的控件,但我无法访问Main_Form函数中的Btn_SignIn_Click()控件。所以,我可以显示或隐藏控件。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

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