在Access Multiple Item Form

时间:2018-02-06 20:31:12

标签: vba ms-access

我有一个多项目表单,除非用户选中之前的复选框,否则大部分复选框都会被禁用。

目前我正在使用:

If Me.Field1 Then
    Me.chxField2.Enabled = True
Else
    Me.chxField2.Enabled = False
End If

但如果我选中该框,它会为所有这些框启用Field2复选框,我只希望它启用一个特定行的复选框。

enter image description here enter image description here

这可能吗?如果不是,那可以,但我只是要问。

编辑:感谢Erik,我在他所描述的BeforeUpdate中做了这个,并且它给出了我想要的效果:

Private Sub chxField2_BeforeUpdate(Cancel As Integer)
    Cancel = Not Field1
    chxField2.Undo
End Sub

1 个答案:

答案 0 :(得分:2)

不幸的是,它不是(据我所知)。

在连续的表格中,实际上每个控件只有一个实例。这意味着您无法启用其中一个Field2复选框,另一个禁用。

你可以做的事情:

使用Checkbox_BeforeUpdate事件检查是否已检查Field1。如果没有检查,则回滚更改:

Private Sub Field2_BeforeUpdate(Cancel As Integer)
    Cancel = Not Field1
End Sub

此外,如果您没有使用复选框,则可以使用条件格式设置为控件提供禁用外观"。不幸的是,条件格式不适用于复选框。