我有一个多项目表单,除非用户选中之前的复选框,否则大部分复选框都会被禁用。
目前我正在使用:
If Me.Field1 Then
Me.chxField2.Enabled = True
Else
Me.chxField2.Enabled = False
End If
但如果我选中该框,它会为所有这些框启用Field2复选框,我只希望它启用一个特定行的复选框。
这可能吗?如果不是,那可以,但我只是要问。
编辑:感谢Erik,我在他所描述的BeforeUpdate中做了这个,并且它给出了我想要的效果:
Private Sub chxField2_BeforeUpdate(Cancel As Integer)
Cancel = Not Field1
chxField2.Undo
End Sub
答案 0 :(得分:2)
不幸的是,它不是(据我所知)。
在连续的表格中,实际上每个控件只有一个实例。这意味着您无法启用其中一个Field2复选框,另一个禁用。
你可以做的事情:
使用Checkbox_BeforeUpdate事件检查是否已检查Field1。如果没有检查,则回滚更改:
Private Sub Field2_BeforeUpdate(Cancel As Integer)
Cancel = Not Field1
End Sub
此外,如果您没有使用复选框,则可以使用条件格式设置为控件提供禁用外观"。不幸的是,条件格式不适用于复选框。