2

我正在寻找一些命令,它将禁用 MS Access 表单的“详细信息”部分中存在的所有控件。一种方法是单独禁用每个控件。我正在寻找一种独立于控件的方式,该方式将禁用 MS Access Form 的详细信息部分中存在的所有控件。

如果要根据一些登录凭据启用表单并且用于输入凭据的字段位于表单的标题部分,则此功能可能很有用。因此,一旦用户登录,该表单中的所有控件都会启用。Uplon注销,它们将被禁用。

我尝试搜索它,但似乎不支持它。或者以前没有人有这样的要求。

如果有人知道,请帮助我。

4

2 回答 2

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
于 2012-11-01T10:22:11.503 回答
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因为用户仍然可以从锁定的控件中复制文本并在它们上使用文本过滤器,但这取决于你。

于 2017-12-21T18:25:27.850 回答