需要在访问时锁定/禁用按钮

时间:2016-01-13 12:54:44

标签: vba ms-access

我需要禁用/锁定两个按钮。我有一个具有子表单的表单,而该子表单又具有另一个子表单。第三个子表单中的两个按钮,我需要根据第二个子表单的OnCurrent()中的条件禁用/锁定。第三个子表单已锁定subform3.locked=true。除了我添加的两个按钮之外,第三个子窗体中的所有内容都被锁定(txtboxes,comboboxes)。

我试图将此代码放在第三个子窗体锁定的代码正下方:
.subform.locked=true

Forms![subform2]![subform3].Form![buttonname].visible=false

但这没效果。 此外,在subform3的OnLoad中尝试运行if条件来检查subform3是否被锁定,如果是,则make button.visible=false。这也没有用。

非常新的访问权限。 感谢帮助。

1 个答案:

答案 0 :(得分:1)

我发现此网站是最佳参考:http://access.mvps.org/access/forms/frm0031.htm

如果您的代码是主要形式,那么:

Private Sub btnOnMainForm_Click()
    Me.btnToDisableOnMainForm.Enabled = False
    Me.SubForm1.Form.btnToDisableOnSubForm1.Enabled = False
    Me.SubForm1.Form.SubForm2.Form.btnToDisableOnSubForm2.Enabled = False
End Sub

如果它在第一个子表单中,那么:

Private Sub btnOnSubForm1_Click()
    Me.btnToDisableOnSubForm1.Enabled = False
    Me.Parent.btnToDisableOnMainForm.Enabled = False
    Me.SubForm2.Form.btnToDisableOnSubForm2.Enabled = False
End Sub

如果它在第二个子表单中,那么:

Private Sub btnOnSubForm2_Click()
    Me.Parent.Parent.btnToDisableOnMainForm.Enabled = False
    Me.Parent.btnToDisableOnSubForm1.Enabled = False
    Me.btnToDisableOnSubForm2.Enabled = False
End Sub

如果表格上没有:

Sub LockControlsFromNormalModule()
    Forms.MainForm.btnToDisableOnMainForm.Enabled = False
    Forms.MainForm.SubForm1.Form.btnToDisableOnSubForm1.Enabled = False
    Forms.MainForm.SubForm1.Form.SubForm2.Form.btnToDisableOnSubForm2.Enabled = False
End Sub

要使用相同的代码打开和关闭启用的属性:

Private Sub btnOnMainForm_Click()
    With Me
        With .btnToDisableOnMainForm
            .Enabled = Not .Enabled
        End With
        With .SubForm1.Form
            With .btnToDisableOnSubForm1
                .Enabled = Not .Enabled
            End With
            With .SubForm2.Form.btnToDisableOnSubForm2
                .Enabled = Not .Enabled
            End With
        End With
    End With
End Sub

使用WITH命令与写入相同:

Private Sub btnOnMainForm_Click()
    Me.btnToDisableOnMainForm.Enabled = Not Me.btnToDisableOnMainForm.Enabled
    Me.SubForm1.Form.btnToDisableOnSubForm1.Enabled = Not Me.SubForm1.Form.btnToDisableOnSubForm1.Enabled
    Me.SubForm1.Form.SubForm2.Form.btnToDisableOnSubForm2.Enabled = Not Me.SubForm1.Form.SubForm2.Form.btnToDisableOnSubForm2.Enabled
End Sub

注意 - MainForm,SubForm1和SubForm2是我保存表单的名称。
txtboxOnMainForm,txtboxOnSubForm1和txtboxOnSubForm2是我给窗体上的控件赋予的名称。