2014-11-24 101 views
1

我正在構建Access報表(2010版),並希望能夠根據用戶在表單上的選擇來對其進行自定義。當我運行它時,出現錯誤2771:您試圖編輯的綁定或未綁定的對象框架不包含OLE對象。通過VBA修改Access報表中的圖表屬性(錯誤2771)

這是傳遞參數的代碼:

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頁......)任何人都可以證實或反駁嗎?

+0

嘗試把你的代碼放在'激活'事件而不是'打開'事件。在打開記錄源之前調用「打開」。 – 2014-11-24 20:40:04

+0

謝謝韋恩,但沒有骰子。它以打印預覽模式打開(我選擇錯誤的acView選項是不好的),並且當我更改爲報告視圖時給出相同的錯誤。將代碼更改爲acViewReport之後,我在同一行上得到相同的錯誤。 – nwhaught 2014-11-24 21:04:59

回答

3

顯然,在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 

這工作。我只是在報告中設置了一個獲取焦點的按鈕。也許你會發現更優雅的東西;)

+0

恰到好處的目的。謝謝! – nwhaught 2014-11-24 22:48:47