我正在寻找一些命令,它将禁用MS Access窗体的“详细信息”部分中的所有控件。一种方法是独立地禁用每个控件。我正在寻找一种独立于控件的方法,它将禁用MS Access Form的详细信息部分中的所有控件。
如果要根据某些登录凭据启用表单,并且输入凭据的字段放在表单的标题部分中,则此功能可能很有用。因此,只要用户登录,就会启用该表单中的所有控件。 Uplon退出,他们将被禁用。
我尝试搜索它,但似乎不支持相同。或者之前没有人有这样的要求。
如果有人知道,请帮助我。
答案 0 :(得分:4)
表单具有符合此要求的各种属性:允许编辑,允许添加和允许删除。允许编辑适用于未绑定的控件,它甚至适用于未绑定的表单。
如果您需要禁用某些控件,可以将这些控件的tab属性设置为字符串,然后遍历表单的控件集以禁用这些控件。
Dim frm As Form
Dim ctl As Control
Set frm = Forms!MyOpenForm
For Each ctl In frm.Controls
If ctl.ControlType <> acLabel And ctl.ControlType <> acTabCtl Then
If ctl.Tag = "AdminHide" Then
If varWho = "Authorized" Then
ctl.Visible = True
Else
ctl.Visible = False
End If
End If
End If
Next
答案 1 :(得分:1)
您可以直接禁用详细信息部分中的所有控件,而无需使用标记:
Dim ctrl As Control
For Each ctrl In Detail.Controls
If (TypeOf ctrl Is TextBox Or TypeOf ctrl Is ComboBox)
ctrl.Enabled = False
End If
Next
同样,您可以使用FormHeader.Controls
和FormFooter.Controls
来获取页眉和页脚中的控件。
我通常更喜欢使用ctrl.Locked = True
而不是ctrl.Enabled = False
,因为用户仍然可以从锁定控件中复制文本并对其使用文本过滤器,但这取决于您。