我正在尝试获取一个连续的子表单,显示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: 退出子 Proc_Error: MsgBox“错误”& Err.Number& “在设置subEmployeeCourseTrainingCompletion过滤器时:”& vbCrLf& Err.Description 继续Proc_Exit 结束子
尝试在主子窗体上使用组合框时出错。
这让我疯狂。在组合框中切换员工时,为什么不想这样做?如何使用组合框使这个vba和子窗体无法正常工作?
答案 0 :(得分:1)
因此,除了pteranodon所说的,将employeeID添加到查询本身修复了所有内容。没有更多的消息框,组合框与子窗体完美配合。
答案 1 :(得分:0)
假设:(请更正):
EmployeeProfile
是您作为子表单调用的表单的名称。
subEmployeeCourseTrainingCompletion
是主表单中子表单控件的名称,其SourceObject设置为EmployeeProfile
。
您正在寻找的语法是
Me.subformcontrol.Form.FormProperty
所以
Me.subEmployeeCourseTrainingCompletion.Form.Filter = ""
但实际上,通过将子窗体控件的LinkMasterFields设置为cboEmployee
并将LinkChildFields设置为EmployeeID
,看起来您可以在没有代码的情况下实现此功能。然后,您可以决定如何在Empty Master上设置Filter。选择子窗体控件时,所有这些属性都位于属性窗口的“数据”选项卡上(单击)。