0

我正在尝试获取一个连续的子表单,显示 CourseID 和 CourseCompletionDate,以显示与通过主子表单的组合框选择的员工相关的输出(这是一个员工培训资料,显示员工完成的培训内容)。这是我的VBA:

Private Sub cboEmployee_AfterUpdate()
    On Error GoTo Proc_Error
    If IsNull(Me.cboEmployee) Then
       Me.subEmployeeCourseTrainingCompletion.EmployeeProfile.Filter = ""
       Me.subEmployeeCourseTrainingCompletion.EmployeeProfile.FilterOn = False
    Else
      Me.subEmployeeCourseTrainingCompletion.EmployeeProfile.Filter = "[EmployeeID]=" & Me.cboEmployee
      Me.subEmployeeCourseTrainingCompletion.EmployeeProfile.FilterOn = True
    End If
Proc_Exit:
       Exit Sub
Proc_Error:
       MsgBox "Error " & Err.Number & " in setting subEmployeeCourseTrainingCompletion filter:" & vbCrLf & Err.Description
       Resume Proc_Exit
End Sub

尝试在主子窗体上使用组合框时出现错误。 尝试在主子窗体上使用组合框时出现错误

为什么在组合框中切换员工时这不想工作?如何使这个 VBA 和子表单与组合框完美结合?

4

2 回答 2

1

因此,除了 pteranodon 所说的之外,将employeeID 添加到查询本身可以解决所有问题。不再有消息框,并且组合框与子表单完美配合。

于 2014-07-22T12:59:57.377 回答
0

假设:(请更正):

EmployeeProfile是您作为子表单调用的表单 的名称。subEmployeeCourseTrainingCompletion是主窗体中将 SourceObject 设置为的子窗体控件EmployeeProfile的名称。

您正在寻找的语法是

Me.subformcontrol.Form.FormProperty 所以 Me.subEmployeeCourseTrainingCompletion.Form.Filter = ""

但实际上,您可以通过将子窗体控件的 LinkMasterFields 设置为cboEmployee并将 LinkChildFields设置为 ,完全无需代码即可实现这一目标EmployeeID。然后,您可以决定如何在 Empty Master 上设置过滤器。所有这些属性都在选择子形式控件时的属性窗口的“数据”选项卡上(单击)。

于 2014-07-17T19:00:07.473 回答