Vba 在Access多项目表单中,一行中仅启用一个复选框
我有一个多项目表单,其中大多数复选框都被禁用,除非用户选中它前面的复选框 目前我正在使用:Vba 在Access多项目表单中,一行中仅启用一个复选框,vba,ms-access,Vba,Ms Access,我有一个多项目表单,其中大多数复选框都被禁用,除非用户选中它前面的复选框 目前我正在使用: If Me.Field1 Then Me.chxField2.Enabled = True Else Me.chxField2.Enabled = False End If 但如果我选中该复选框,它将为所有行启用Field2复选框,我只希望它为一个特定行启用复选框 这可能吗?如果不是,那没关系,但我不得不问 编辑:多亏了Erik,我在BeforeUpdate中做到了这一点,正如他所描
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
不幸的是,它不是(据我所知)
在连续形式上,实际上每个控件只有一个实例。这意味着您不能启用其中一个Field2复选框,而禁用另一个复选框
你可以做的事情:
使用复选框\u BeforeUpdate事件检查是否选中字段1。如果未选中,则回滚更改:
Private Sub Field2_BeforeUpdate(Cancel As Integer)
Cancel = Not Field1
End Sub
此外,如果不使用复选框,则可以使用条件格式为控件提供“禁用的外观”。不幸的是,条件格式不适用于复选框。对于记录(并非双关语),该条件可以简化为
Me.chxField2.Enabled=Me.Field1
@Mat'sMug-oh-nice!我以后一定会像那样使用它。谢谢,没问题!请注意,这是在我管理的OSS项目中实施的50多个代码检查中的一个。请看一下此线程中建议的方法: