如何限制表单字段的编辑,直到进行组合框选择?我正在使用MS Access 2007。
感谢您的帮助。
答案 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
要做到这一点,我会推荐我上面所说的,并将组合框的第一项放在他们不会选择的地方。