Database MS Access自动更新表单不断更改按钮的可见性

Database MS Access自动更新表单不断更改按钮的可见性,database,ms-access,conditional,Database,Ms Access,Conditional,仍然在为质量控制系统与access数据库搏斗 我的最后一个问题是要有一个按钮的可见性,如果不满足条件,则启用属性更改为0。我可以通过以下代码完成此操作: Private Sub Form_Current() Dim ok As Boolean ok = Status.Value Botão_Motores.Visible = ok Botão_Motores.Enabled = ok End Sub 但现在的问题是,它只会在我打开和关闭表单时更新状态,而不会在状态字段更新时更新。。。我

仍然在为质量控制系统与access数据库搏斗

我的最后一个问题是要有一个按钮的可见性,如果不满足条件,则启用属性更改为0。我可以通过以下代码完成此操作:

Private Sub Form_Current()

Dim ok As Boolean
ok = Status.Value


Botão_Motores.Visible = ok
Botão_Motores.Enabled = ok

End Sub
但现在的问题是,它只会在我打开和关闭表单时更新状态,而不会在状态字段更新时更新。。。我在这里的方法是,尽管我对其他策略持开放态度,在状态字段的Change sub中包含一些东西,以当前sub的形式运行代码,但这是可能的还是我必须以另一种方式执行?如果是,怎么做


谢谢

Access对表单中的数据更改没有任何事件-只是用户第一次更改表单上的任何数据(脏)和记录更改(当前)以及控件中的数据更改(脏、更改、更新前、更新后…)

您可以为该任务创建一个过程,并从当前和控件的相应事件(可能是更新后)调用它,这些控件应更改按钮的可见性

Private Sub ChangeMotorVisibility()
   Botao_Motores.visible=Status.value
End Sub

Private Sub Form_Current()
  ChangeMotorVisibility
End Sub

Private Sub Status_AfterUpdate()
  ChangeMotorVisibility
End Sub

这似乎是一个完美的答案,但当状态字段的值改变时,它似乎不会更新。。。你能想出其他方法来更新字段吗?我在状态字段和表单字段上尝试了几乎所有的sub,运气不好:/请给我更多信息。状态字段是什么类型的?它是如何获得其值的(是否计算,复选框…?状态字段是基于一系列复选框计算的,公式是Abs([checkbox1]*[checkbox2]…[Checkbox10])因此,只有当所有复选框都返回1时,它才会返回1,这就是我进行检查的方式,这似乎是最好的方法。如果您能想出其他方法,请告诉我对于布尔值,您应该使用布尔运算符。最好是
status=[checkbox1]。value和[checkbox2].value和…
因此,如果您在ChangeMotorVisibility
Botao_motors.visible=status中使用此选项,并且在更新后的每个复选框中调用ChangeMotorVisibility,您应该不会有问题。