基于窗体的组合框选择(使用VBA)显示子窗体上的记录
问题描述:
我有一个主窗体,其中有一个组合框,我命名为FLRecCombo。这是最初设置的,以便在组合框中选择一个选项将移动到主窗体记录源上的该记录。基于窗体的组合框选择(使用VBA)显示子窗体上的记录
然后,我还在主窗体上创建子窗体,当初始设置时,它们将根据主窗体当前使用公共字段的任何记录源移动到其记录源中的记录(即,您可以使用组合框移动到所有子表单上的给定记录)。
注意如何,这一切都是过去式......
我想添加一些代码在VBA中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
任何帮助,将不胜感激行!
答
这应该阅读:
.FindFirst "[Funding Line]=" & Me.FLRecCombo
或者可能,如果资金行文字:
.FindFirst "[Funding Line]='" & Me.FLRecCombo & "'"
,因为你必须在你的领域名称空间您需要的方括号。为了你自己,考虑摆脱表和字段名称中的所有空格。
最后,对于子表单,您可以使用链接子字段和主字段做很多事情,包括在没有任何代码的情况下过滤子表单的内容。
Link Master Fields: MyCombo
Link Child Fields : [Funding Line]
非常感谢。我曾用方括号试过,但得到了相同的结果。因为它是一个文本字段,您在那里给我的第二个代码清除了错误。不幸的是,虽然错误消失了,但代码似乎并没有在子表单上移动记录。我查看了** Link Master Fields **和** Link Child Fields ** ...这些对我来说似乎没有问题(Master = FundingLine和Child = Funding Line。还有什么我可以尝试的? – 2013-03-12 17:51:39
如果你将链接主字段设置为组合框的名称,而不是字段名称,因为您在组合框中选择每一行时,子表单的内容将会改变。 – Fionnuala 2013-03-12 17:57:11
感谢您对主/子属性的编辑;这已经完成了。 – 2013-03-12 17:58:52