2009-04-14 44 views
5

OK hoàn toàn không có bài viết hay trên internet mà tôi có thể tìm thấy giải thích hoặc có các ví dụ về cách tạo biểu đồ tổng hợp bằng VBA. Tôi cần điều này vì tôi cần biểu đồ tổng hợp để hiển thị các kết quả khác nhau tùy thuộc vào lựa chọn của người dùng trong biểu mẫu. Có một số cho Excel nhưng cú pháp khác với Access. Tôi biết đây là một câu hỏi lame, nhưng nếu có ai có một ví dụ về làm thế nào để tạo ra một biểu đồ pivot trong VBA tôi thực sự sẽ đánh giá cao sự giúp đỡ.Tạo biểu đồ Pivot Sử dụng Access 2007 VBA

Trả lời

3

Sau khoảng 3 ngày tìm kiếm, tôi nghĩ mình đã tìm thấy nó. Không phải ai cũng thực sự quan tâm, điều này chỉ có 6 lượt xem, nói rất nhiều về sự khủng khiếp hoàn toàn của VBA. Dù sao, MSDN đã ẩn này dưới "Office XP" thay vì theo Access, nhưng bất cứ điều gì.

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

+0

Nó chỉ nói điều gì đó về khả năng sử dụng các biểu đồ trong Access, nơi có đã các vấn đề chính tích hợp MS Graph trở lại như xa như năm 1996 trong kinh nghiệm của tôi. Do đó, nhiều nhà phát triển Access nâng cao tránh được điều đó. Bảng tổng hợp không tồn tại cho đến A2003, và tôi nhớ lại những người gặp sự cố khi họ làm việc. –

0

tôi đã tạo ra một hình thức PivotChart trong Access 2007. Về hình thức khác tôi có các điều khiển lựa chọn người dùng và pivotform như một subform. Sau đó, tôi sử dụng mã như thế này trong biểu mẫu chính. Mô hình đối tượng giống với OWC11 (Thành phần Web Office 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 

các hằng số có thể được bắt nguồn từ OWC11

C: \ Program Files \ Common Files \ Microsoft Shared \ Web Components \ 11 \ OWC11.DLL

Bạn cần họ ở phía trên cùng của mô-đun. Ở giai đoạn này, tôi không chắc chắn làm thế nào để trích xuất chúng từ pivotchart Access. Tham chiếu đến OWC11 và đặt biểu mẫu con ChartSpace thành biến được khai báo là OWC11.ChartSpace. Sau khi viết thay đổi mã để nhập 'Đối tượng', và loại bỏ tham chiếu cho ràng buộc trễ (và kiểm tra lại). Bằng cách này, refs của bạn sẽ không bị unstuck trên một máy 64bit khi bạn triển khai.

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

Hãy nhớ rằng bạn cũng có thể cho phép người dùng có quyền truy cập vào biểu mẫu thuộc tính PivotChart, danh sách trường và vùng thả. Hoặc họ có thể nhấp chuột phải vào biểu đồ để xem chúng.

(Lưu ý - đây vẫn là một khám phá mới đối với tôi vì vậy tôi sẽ cố gắng cập nhật câu trả lời này nếu tôi tìm thấy bất kỳ của Gotcha.)

+0

đây là một bài viết của Mike Gunderloy sử dụng vba pivotcharts trong A2002 http://msdn.microsoft.com/en-us/library/aa155735%28office.10%29.aspx –

Các vấn đề liên quan