1

我有一个主窗体,其中有一个我命名为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开头的代码行

任何帮助将非常感激!

4

1 回答 1

1

那应该是:

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

或者,如果资金线是文本:

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

您需要方括号,因为您的字段名称中有一个空格。为了您自己的利益,请考虑去掉表名和字段名中的所有空格。

最后,您可以对子表单的链接子字段和主字段做很多事情,包括在不使用任何代码的情况下过滤子表单的内容。

 Link Master Fields: MyCombo
 Link Child Fields : [Funding Line]
于 2013-03-12T17:31:12.703 回答