2012-06-22 94 views
0

我使用Access中的圖表嚮導創建了十幾個不同的圖表(因此每個圖表實際上都是一個單獨的表格)。我還設置了具有以下嵌套形式結構的GUI:如何在MS Access子表單上引用圖表對象?

frmMain -> frmSubMain -> Child0 (a subform of frmSubMain) 

我有frmSubMain一個列表框,列出了所有的圖表,以及當用戶選擇一個,我用VBA來更改源對象Child0選擇適當的表格。 (所以本質上,用戶可以選擇所需的圖表,並提交。)

我現在試圖添加一個按鈕到frmSubMain,將當前選定的圖表複製到PowerPoint,但我遇到了副本命令並引用圖表對象。圖表對象在每一表格被稱爲OLEUnbound0,這裏是我試過什麼(我有表單名稱圖表作爲一個變量「my_form」):

  • 形式(my_form).OLEUnbound0。 acOLECopy
  • Me.Child0.OLEUnbound0.acOLECopy
  • Me.Controls(my_form).OLEUnbound0.acOLECopy

每個給出了一個不同的錯誤(例如,第二個給出了錯誤「方法或數據成員未找到」)。我的一部分混亂是我有表單名稱,但作爲一個變量,我不知道如何使用該變量(因爲我不能使用標準的形式![frmMain]![frmSubMain]!等)。什麼是使用變量引用子表單的語法?

+0

您需要參考兩個子控件(子控件),你引用一個對象之前所包含的形式,讓'Me.NameOfSubformControl.Form.NameOfControl' NameOfSubformControl和NameOfControl有被更改爲你的名字,但你不需要知道子窗體控件所包含窗體的名稱,它是由控件的Form屬性引用的。 – Fionnuala

+0

我不確定我是否正確地翻譯了這些內容,但是我只是嘗試了Me.Child0.Form.OLEUnbound0.acolECopy並且得到了一個不支持此屬性錯誤的對象。 – rryanp

回答

2

嘗試:

Me.Child0.Form.OLEUnbound0.Action = acOLECopy 
+0

@ Remou - 我已經使用了幾個月,剛剛注意到當它複製圖表時,圖表數據可能會持續幾周。我在表格和控制中添加了一個查詢,這似乎沒有幫助。我修改了一些表單,並且有時導致其中一個圖表(我使用循環來複制五個圖表)進行更新,但其他圖表仍舊顯示舊數據。也許我錯過了一些非常明顯的東西,但我似乎無法弄清楚。任何關於這個命令如何工作的洞察力或想法爲什麼我會看到這種行爲?謝謝! – rryanp

+0

我只是玩了一些,如果我手動打開窗體,然後關閉它們,然後運行代碼,它工作正常。否則,看起來好像是以某種方式獲取圖表的緩存版本 - 甚至可能嗎?而且,從VBA打開和關閉表單並不能解決問題 - 必須手動打開。 – rryanp

+0

是的,這可能是一個圖表,但是,用VBA打開表單應該可以工作,我還沒有測試過,但我猜你需要重新查詢或重新計算。還有一個奇怪之處 - 您可能需要最小化和最大化表單以使其正確顯示。 – Fionnuala