MS-Access隐藏并通过vba有条件地显示按钮

时间:2014-06-02 14:19:12

标签: vba ms-access conditional-statements

我正在为我的公司开发一个质量控制系统,我想把它连接到一个标签打印机,它已经被关掉了,问题就在于按钮本身。

我希望打印标签按钮仅在完成整个检查后启用并显示,我现在得到的是:

Private Sub Form_BeforeUpdate(Cancel As Integer)

Button_label.Visible = False
Button_label.Enabled = False

End Sub

Private Sub Motor_OK_Change()

Dim ok As Boolean
ok = Motor_OK.Value


If ok = 1 Then
Button_label.Visible = True
Button_label.Enabled = True

End If


End Sub

它确实可以隐藏按钮,但是在尝试再次启用它并在进行检查时使其可见时失败。提及我尝试使用If ok = True代替If ok= 1这一点非常重要,我不知道这有多重要。

由于

1 个答案:

答案 0 :(得分:0)

您没有测试这两种情况(ok = 0),也许以下情况可行:

替换:

If ok = 1 Then
    Button_label.Visible = True
    Button_label.Enabled = True
End If

使用:

Button_label.Visible = ok   
Button_label.Enabled = ok

新解决方案:

使用Form_Current事件,而不是使用Form Before_Update事件。如果只有1条记录,您还可以使用Form_Load事件。我还建议您删除Visible属性并仅使用Enabled属性,以便用户可以看到它们的打印功能。

Private Sub Form_Current()
  'button_Label.Visible = False
  button_Label.Enabled = False
End Sub

使用After_Update事件

,而不是使用Motor_OK Before_Updateevent
Private Sub Motor_OK_AfterUpdate()
    Dim ok As Boolean ' defaults to False

    If IsNumeric(Motor_OK.Value) Then ok = True  ' remove this statement if Motor_OM is
                                                 ' alpha numeric.     

    If Not IsNull(Motor_OK.Value) Then ok = True ' otherwise following statement 
                                                 ' to avoid NULL error

    'button_Label.Visible = ok
    button_Label.Enabled = ok

End Sub

如果我能得到进一步的帮助,请告诉我。