Modify Chart properties in Access report via VBA (error 2771)

左心房为你撑大大i 提交于 2019-12-11 03:21:41

问题


I am building an Access report (2010 version), and would like to be able to customize it based on the user's selections on a form. When I run it, I get error 2771: The bound or unbound object frame you tried to edit does not contain an OLE object.

This is the code to pass the parameter:

Private Sub Command120_Click()
    DoCmd.OpenReport ReportName:="rpt_EODGraph", View:=acViewPreview, _
      OpenArgs:=Me!Text0.Value
End Sub

This is the code to open the report.

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

I've found at least one person saying that this is not actually possible to do on a report. (http://www.access-programmers.co.uk/forums/showthread.php?t=177778&page=2 Note that this is page 2 of a 2 page forum discussion...) Can anyone corroborate or refute?


回答1:


Apparently the Report has to have some kind of focus before OLE objects are accessible. It is enough if you click on it or set the focus to something:

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

This works. I just set a button on the report that gets the focus. Perhaps you find something more elegant ;)



来源:https://stackoverflow.com/questions/27113380/modify-chart-properties-in-access-report-via-vba-error-2771

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!