我正在尝试再次疯狂的事情。我想使用这行代码:
Reports![PrntRep].SourceObject = Forms![Search Form]!Subform1.SourceObject
subform1的源对象是动态的,具体取决于您需要搜索的查询。我希望将报告的源设置为相同的查询,这样我就不需要制作一堆不同的报告。 它抛出错误2465,应用程序定义或对象定义错误。
答案 0 :(得分:2)
报告没有SourceObject
属性。这就是Access在您尝试引用错误时抛出错误#2465,“应用程序定义或对象定义的错误”的原因。
这是我系统的立即窗口示例:
' first demonstrate the report is accessible ...
Debug.Print Reports!rptFoo.Name
rptFoo
' now when referencing SourceObject ...
Debug.Print Reports!rptFoo.SourceObject ' <-- error 2465
也许你想改变报告的RecordSource
而不是:
' current RecordSource ...
Debug.Print Reports!rptFoo.RecordSource
SELECT rmy.id, rmy.reportDate, rmy.gainOrLoss FROM record_matYields AS rmy;
' change RecordSource to a saved query ...
Reports!rptFoo.RecordSource = "qryBar"
' confirm RecordSource was altered ...
Debug.Print Reports!rptFoo.RecordSource
qryBar
报告显示原始RecordSource
的6行。保存的查询包含WHERE
条件,该条件将结果限制为仅有2行。因此,如上所述更改RecordSource
导致报告仅显示那两行而不强制报告进入设计模式,这与您在评论中提到的宏方法不同。
不幸的是,我不太了解宏来帮助你解决问题。我主要避免使用宏。