通过 VBA 修改 Access 报告中的图表属性(错误 2771)
Posted
技术标签:
【中文标题】通过 VBA 修改 Access 报告中的图表属性(错误 2771)【英文标题】:Modify Chart properties in Access report via VBA (error 2771) 【发布时间】:2014-11-24 20:14:55 【问题描述】:我正在构建一个 Access 报告(2010 版),并希望能够根据用户在表单上的选择对其进行自定义。当我运行它时,我收到错误 2771:您尝试编辑的绑定或未绑定对象框架不包含 OLE 对象。
这是传递参数的代码:
Private Sub Command120_Click()
DoCmd.OpenReport ReportName:="rpt_EODGraph", View:=acViewPreview, _
OpenArgs:=Me!Text0.Value
End Sub
这是打开报告的代码。
Private Sub Report_Open(Cancel As Integer)
Dim ch As Chart
Set ch = Me.Graph3.Object.Application.Chart 'This line generates the error
ch.ChartTitle.text = OpenArgs
End Sub
我发现至少有人说这实际上是不可能在报告中做到的。 (http://www.access-programmers.co.uk/forums/showthread.php?t=177778&page=2 请注意,这是 2 页论坛讨论的第 2 页...)任何人都可以证实或反驳吗?
【问题讨论】:
尝试将您的代码放在“激活”事件而不是“打开”事件中。在满足记录源之前调用“打开”。 谢谢韦恩,但没有骰子。它以打印预览模式打开(我选择错误的 acView 选项不好),并在我更改为报告视图时给出相同的错误。将代码更改为 acViewReport 后,我在同一行收到相同的错误。 【参考方案1】:显然,在 OLE 对象可访问之前,报表必须具有某种焦点。 如果你点击它或将焦点设置到某个东西就足够了:
Private Sub Report_Open(Cancel As Integer)
Dim ch As Object
Me.RandomButton.SetFocus
Set ch = Me.Diagramm11.Object
ch.ChartTitle.Text = "Hello"
End Sub
这行得通。我只是在获得焦点的报告上设置了一个按钮。也许你会发现一些更优雅的东西;)
【讨论】:
以上是关于通过 VBA 修改 Access 报告中的图表属性(错误 2771)的主要内容,如果未能解决你的问题,请参考以下文章
MS Access 报告“每个细节”格式化和 VBA 中的访问
如何通过 MS-Access VBA 中的 TextBox.OnKeyUp 属性传递 KeyCode