基于Combobox Access 2010的连续子窗体输出

时间:2014-07-17 17:56:37

标签: combobox access-vba ms-access-2010 continuous-forms

我正在尝试获取一个连续的子表单,显示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 结束子

尝试在主子窗体上使用组合框时出错。 Error that I get when trying to use the combobox on the main subform

这让我疯狂。在组合框中切换员工时,为什么不想这样做?如何使用组合框使这个vba和子窗体无法正常工作?

2 个答案:

答案 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。选择子窗体控件时,所有这些属性都位于属性窗口的“数据”选项卡上(单击)。