我如何 hide/unhide 基于来自两个组合框的输入的子表单?
How do I hide/unhide a subform based on the input from two comboboxes?
我有一个名为 TrainingsSU 的主窗体
我在其中调用子表单 qry_TrainingSU (根据同名查询构建)
我设置了它,以便记录根据主窗体中的两个组合框自动填充子窗体。
但我需要做的是隐藏子表单,并让它仅在填充两个组合框并加载记录时显示。
这是目前的VBA(我真的不是新手)
Private Sub cbo_EmployeeLookup_AfterUpdate()
Me!qry_TrainingsSU.Requery
If Me.cbo_EmployeeLookup.Value = "" Then
Forms!qry_TrainingsSU.Visible = False
Else
Forms!qry_TrainingsSU = True
End If
End Sub
Private Sub cbo_TrainingName_AfterUpdate()
Me!qry_TrainingsSU.Requery
If Me.cbo_TrainingName.Value = "" Then
Forms!qry_TrainingsSU = False
Else
Forms!qry_TrainingsSU.Visible = True
End If
End Sub
我在另一个答案中找到了这段代码的一般形式,这里是:
但是代码似乎对我不起作用。
当前子表单设置为 Visible:No
所以什么都没有出现。
如果我改变它,它不会消失,空的子表单仍然可见。
这不是问题,除非我需要将此表单用于另一个查询,并希望在第二个子表单准备好使用时将它们叠加在一起。
稍后,此表单将用于根据不同的子表单将更新集推送到 table。
代码是否有明显错误,或者我是否遗漏了某个地方的设置?
你可以试试这个:
Private Sub updateStates()
Me!qry_TrainingsSU.Form.Requery
If (Me.cbo_EmployeeLookup.Value <> "" AND Me.cbo_TrainingName.Value <> "") Then
Me!qry_TrainingsSU.Visible = True
Else
Me!qry_TrainingsSU.Visible = False
End If
End Sub
Private Sub cbo_EmployeeLookup_AfterUpdate()
updateStates
End Sub
Private Sub cbo_TrainingName_AfterUpdate()
updateStates
End Sub
Forms!qry_TrainingsSU
搜索作为主窗体而非子窗体打开的窗体。
我有一个名为 TrainingsSU 的主窗体 我在其中调用子表单 qry_TrainingSU (根据同名查询构建) 我设置了它,以便记录根据主窗体中的两个组合框自动填充子窗体。
但我需要做的是隐藏子表单,并让它仅在填充两个组合框并加载记录时显示。
这是目前的VBA(我真的不是新手)
Private Sub cbo_EmployeeLookup_AfterUpdate()
Me!qry_TrainingsSU.Requery
If Me.cbo_EmployeeLookup.Value = "" Then
Forms!qry_TrainingsSU.Visible = False
Else
Forms!qry_TrainingsSU = True
End If
End Sub
Private Sub cbo_TrainingName_AfterUpdate()
Me!qry_TrainingsSU.Requery
If Me.cbo_TrainingName.Value = "" Then
Forms!qry_TrainingsSU = False
Else
Forms!qry_TrainingsSU.Visible = True
End If
End Sub
我在另一个答案中找到了这段代码的一般形式,这里是:
当前子表单设置为 Visible:No 所以什么都没有出现。 如果我改变它,它不会消失,空的子表单仍然可见。 这不是问题,除非我需要将此表单用于另一个查询,并希望在第二个子表单准备好使用时将它们叠加在一起。
稍后,此表单将用于根据不同的子表单将更新集推送到 table。
代码是否有明显错误,或者我是否遗漏了某个地方的设置?
你可以试试这个:
Private Sub updateStates()
Me!qry_TrainingsSU.Form.Requery
If (Me.cbo_EmployeeLookup.Value <> "" AND Me.cbo_TrainingName.Value <> "") Then
Me!qry_TrainingsSU.Visible = True
Else
Me!qry_TrainingsSU.Visible = False
End If
End Sub
Private Sub cbo_EmployeeLookup_AfterUpdate()
updateStates
End Sub
Private Sub cbo_TrainingName_AfterUpdate()
updateStates
End Sub
Forms!qry_TrainingsSU
搜索作为主窗体而非子窗体打开的窗体。