在Access 2007中更改子窗体的SourceObject时失去更改属性的功能

时间:2014-07-25 12:25:54

标签: vba access-vba ms-access-2007 subform beforeupdate

我有一个子表单,可以使用Me.SubForm.SourceObject = Query.SomeQuery根据用户输入更改从中获取数据的位置。看来通过这样做,我失去了设置BeforeUpdate属性的能力。

我使用的代码如下:

Forms![PartsDatabase]![RepsSubform].Form![Pack Rank].BeforeUpdate = "=ToTracking()"

我已确认这在SubForm.SourceObject更改之前有效,但之后会抛出以下错误:RTE 2455“您输入的表达式对属性BeforeUpdate的引用无效。”

我想知道这是一个已知问题,还是我只需要修改我的代码进行调整。

1 个答案:

答案 0 :(得分:1)

你在这里弄得一团糟。您永远不应该更改源对象,而应该更改记录源。表单中涉及的代码是表单级别。如果您希望使用Before Update事件,它属于Form而不是Recordsource。所以你总是去改变RecordSource。

你会用,

Forms!Parentform!SubForm.Form.RecordSource = "SELECT someFields FROM someTable;"

或者,

Forms!ParentForm!SubForm.Form.RecordSource = "yourCompiledQueryName"