根据表单的组合框选择显示子表单上的记录(使用VBA)

时间:2013-03-12 17:26:31

标签: ms-access ms-access-2010

我有一个主窗体,它有一个名为 FLRecCombo 的组合框。最初设置这样,以便在组合框中选择一个选项将移动到主窗体的记录源上的该记录。

然后我在主窗体上也有子窗体,初始设置时会根据主窗体当前使用公共字段的任何记录源移动到其记录源中的记录(即您可以使用组合框移动到所有子表单上的给定记录。)

请注意过去时所有这一切......

我想在VBA中为 FLRecCombo AfterUpdate事件添加一些代码;不幸的是,这似乎削减了组合框,主窗体和子窗体之间的关系。我想可能在 FLRecCombo AfterUpdate事件中创建了一个宏,我通过代码构建器对其进行了严厉的篡改。

我如何恢复我最初的行为?我尝试过在本网站上建议的方法;这里是对象引用:

  • 子表单名称: Finance_FunderAllocation子表单
  • 子表单记录来源: Finance_HeadRec_FunderAllocation
  • 要匹配的子表单记录源字段名称:资金行
  • 表单记录源字段名称以匹配: FundingLine

这是我尝试过的代码:

Private Sub FLRecCombo_AfterUpdate() 

    With Me.[Finance_FunderAllocation subform].Form.Recordset
        .FindFirst "Funding Line=" & Me.FLRecCombo
    End With 

End Sub

访问调试器并不是这样的,但是说:

  

运行时错误' 3077':

     

表达式中的语法错误(缺少运算符)。

然后它突出显示以 .FindFirst

开头的代码行

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

那应该是:

 .FindFirst "[Funding Line]=" & Me.FLRecCombo

或者可能,如果资金行是文本:

 .FindFirst "[Funding Line]='" & Me.FLRecCombo & "'"

您需要方括号,因为您的字段名称中有空格。为了您自己,请考虑删除表和字段名称中的所有空格。

最后,您可以使用子窗体的子窗口和主窗口字段进行大量操作,包括在没有任何代码的情况下过滤子窗体的内容。

 Link Master Fields: MyCombo
 Link Child Fields : [Funding Line]