Ms access 访问:将源对象设置为另一个源对象路径

Ms access 访问:将源对象设置为另一个源对象路径,ms-access,vba,Ms Access,Vba,我又在做疯狂的事了。我想使用这行代码: Reports![PrntRep].SourceObject = Forms![Search Form]!Subform1.SourceObject 子表单1的源对象是动态的,这取决于需要搜索的查询。我希望将报告的源设置为相同的查询,这样我就不需要生成一堆不同的报告。 它抛出错误2465,应用程序定义的错误或对象定义的错误。报表没有SourceObject属性。这就是Access在您尝试引用它时抛出错误#2465“应用程序定义或对象定义错误”的原因 以下

我又在做疯狂的事了。我想使用这行代码:

Reports![PrntRep].SourceObject = Forms![Search Form]!Subform1.SourceObject
子表单1的源对象是动态的,这取决于需要搜索的查询。我希望将报告的源设置为相同的查询,这样我就不需要生成一堆不同的报告。
它抛出错误2465,应用程序定义的错误或对象定义的错误。

报表没有
SourceObject
属性。这就是Access在您尝试引用它时抛出错误#2465“应用程序定义或对象定义错误”的原因

以下是我的系统中的即时窗口示例:

'首先演示报告是可访问的。。。
调试。打印报告!rptFoo.Name
rptFoo
'现在在引用SourceObject时。。。

调试。打印报告!rptFoo.SourceObject“当使用这行代码时,您遇到了什么样的问题?对不起,我完全忘了包括这一点。正在编辑。尝试执行此操作时,[Search Form]是否打开?您需要确保
Forms![搜寻表格]!子表单1.SourceObject
在范围内。你能验证一下吗?表单引用的范围是什么?我在同一个数据库中使用它,但它在报告中,并且它最初在搜索FormOk时使用(相同的引用),所以大部分是固定的。现在,它成功地打开了报告,但在设计视图中。宏设置为在“报表”视图中打开报表,但它转到“设计”视图。问题是,我想将报表的记录源设置为子窗体的源对象,这取决于用户正在执行的操作。您知道如何获取子窗体
SourceObject
窗体![搜寻表格]!子窗体1.SourceObject
然后将其用于报告的
RecordSource
。问题出在哪里?如果我使用源对象的路径,它将进入设计视图。宏也是从按钮调用代码的对象。