我正在寻找一些命令,它将禁用 MS Access 表单的“详细信息”部分中存在的所有控件。一种方法是单独禁用每个控件。我正在寻找一种独立于控件的方式,该方式将禁用 MS Access Form 的详细信息部分中存在的所有控件。
如果要根据一些登录凭据启用表单并且用于输入凭据的字段位于表单的标题部分,则此功能可能很有用。因此,一旦用户登录,该表单中的所有控件都会启用。Uplon注销,它们将被禁用。
我尝试搜索它,但似乎不支持它。或者以前没有人有这样的要求。
如果有人知道,请帮助我。
我正在寻找一些命令,它将禁用 MS Access 表单的“详细信息”部分中存在的所有控件。一种方法是单独禁用每个控件。我正在寻找一种独立于控件的方式,该方式将禁用 MS Access Form 的详细信息部分中存在的所有控件。
如果要根据一些登录凭据启用表单并且用于输入凭据的字段位于表单的标题部分,则此功能可能很有用。因此,一旦用户登录,该表单中的所有控件都会启用。Uplon注销,它们将被禁用。
我尝试搜索它,但似乎不支持它。或者以前没有人有这样的要求。
如果有人知道,请帮助我。
表单具有符合此要求的各种属性:允许编辑、允许添加和允许删除。允许编辑适用于未绑定的控件,甚至适用于未绑定的表单。
如果您需要禁用某些控件,可以将这些控件的 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
您可以直接禁用详细信息部分中的所有控件,而无需使用标签:
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
因为用户仍然可以从锁定的控件中复制文本并在它们上使用文本过滤器,但这取决于你。