2009-04-14 102 views
5

確定在互聯網上絕對沒有好的文章,我可以找到解釋或具有如何使用VBA創建數據透視圖的代碼示例。我需要這個,因爲我需要數據透視表根據用戶在表單中的選擇顯示不同的結果。有一些用於Excel,但Access的語法不同。我知道這是一個蹩腳的問題,但如果任何人有一個如何在VBA中創建數據透視表的例子,我會非常感謝幫助。使用Access 2007 VBA創建樞軸圖

回答

3

大約3天的搜索後,我想我找到了它。並不是說任何人真的在乎,這隻有6個觀點,對VBA的極度可怕表示很多。無論如何,MSDN隱藏在「Office XP」下,而不是在Access下,但無論如何。

http://msdn.microsoft.com/en-us/library/aa662945.aspx#

+0

它只是說一些關於圖表在Access的可用性,那裏已經根據我的經驗,將MS Graph整合到1996年的主要問題。因此,許多先進的Access開發人員避免它。直到2003年,樞軸表才存在,我記得有人在讓他們工作時遇到問題。 – 2009-04-16 00:46:53

0

我已經創建在Access 2007。另一種形式我有用戶選擇控件和pivotform作爲子窗體數據透視圖的形式。然後我在主窗體中使用這樣的代碼。對象模型與OWC11(Office Web Components 11)相同。

Private Function DisplayChart() 

    With mysubform.Form.ChartSpace 
    .Clear 
    .AllowFiltering = True 
    .HasChartSpaceTitle = True 
    .ChartSpaceTitle.Caption = "test" 
    .DisplayFieldButtons = False 
    .DisplayToolbar = False 

    .ConnectionString = ... 
    .CommandText = "SELECT rSeries, rCategory, rDate, rValue " & _ 
     "FROM myTable" 

    .Charts(0).Type = chChartTypePie 

    .SetData chDimSeriesNames, chDataBound, "rSeries" 
    .SetData chDimCategories, chDataBound, "rCategory" 
    .SetData chDimValues, chDataBound, "rValue" 

    .HasChartSpaceLegend = True 

    End With 

End Function 

常數可以從OWC11

C下得出:\ Program Files文件\ Common Files文件\ Microsoft共享\ Web組件\ 11 \ OWC11.DLL

你需要在他們的上方模塊。在這個階段,我不確定如何從Access數據透視表中提取它們。創建OWC11的引用並將子表單ChartSpace設置爲聲明爲OWC11.ChartSpace的變量。編寫代碼更改爲鍵入'Object'後,刪除後期綁定(和重新測試)的引用。這樣,當你部署時,你的引用不會在64位機器上出現。

Private Enum ChartConstants 
    chDimSeriesNames = 0 
    chDimCategories = 1 
    chDimValues = 2 
    chDataBound = 0 
    chAxisPositionValue = -8 
    chAxisPositionCategory = -7 
    chChartTypePie = 18 
End Enum 

請記住,您還可以讓用戶訪問數據透視圖屬性窗體,字段列表和放置區域。或者他們可以右鍵單擊圖表以找到他們。

(注 - 這仍是一個新的發現對我,所以我會盡力更新這個答案,如果我發現任何疑難雜症的。)

+0

這裏是Mike Gunderloy在A2002中使用vba pivotcharts的一篇文章http://msdn.microsoft.com/en-us/library/aa155735%28office.10%29.aspx – 2010-11-11 00:47:14