MS ACCESS 2007限制编辑以形成字段,直到进行组合框选择

时间:2014-05-27 19:23:07

标签: database

如何限制表单字段的编辑,直到进行组合框选择?我正在使用MS Access 2007。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在表单上,​​您可以从锁定(无法编辑)和禁用(无法单击它们)的所有字段开始(您可以在表单的属性表中找到它们)。然后在组合框的On Change事件中,在VBA中循环显示所有字段并再次启用它们。

This answer提供了如何循环表单上的控件的代码。在此示例中,您将设置ctl.Enabled = True和ctl.Locked = False(其中ctl是您引用的控件)

注意,为了确保组合框始终被更改,我通常会选择"选择一个......"作为列表的第一项。并在表单提交时检查它以确保它仍未被选中。这样,它会强制On Change事件触发,如果有人使用列表的第一个选项则不会触发。

希望这至少足以让你开始......

编辑:其他信息

在表格设计中,我把默认值设为"选择1"在组合框上,它成为第一个选择。因此,当表格出现时,这就是你所看到的。

您可以将备忘录和日期字段的Locked属性设置为Yes(在数据下的属性表中找到,或者您可以在VBA中使用.Locked = True。

然后,在组合框的on change事件中,单击...并使用代码生成器并输入如下内容:

Dim ctl As Control

If Me.Combo77.Value <> "Choose 1" Then

    'Loop through all controls on form
    For Each ctl In Me.Controls

        'Only text boxes, not labels, or combo box ect.
        If ctl.ControlType = acTextBox Then

            'Unlock the field and allow editing
            ctl.Locked = False
        End If
    Next

End If

我尝试了它,它适用于我的小测试数据库。

以下是有关控件类型的MSDN文章:MSDN Control Types

要做到这一点,我会推荐我上面所说的,并将组合框的第一项放在他们不会选择的地方。