Я создал форму сводной диаграммы в Access 2007. В другой форме у меня есть пользовательские элементы управления и сводная форма в качестве подчиненной формы. Затем я использую такой код в основной форме. Объектная модель аналогична OWC11 (веб-компоненты 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
константы могут быть получены из OWC11
C: \ Program Files \ Common Files \ Microsoft Shared \ Веб-компоненты \ 11 \ OWC11.DLL
Они нужны вам в верхней части модуля. На данном этапе я не уверен, как извлечь их из сводной диаграммы Access. Сделайте ссылку на OWC11 и установите подчиненную форму ChartSpace для переменной, объявленной как OWC11.ChartSpace. После написания кода перейдите к типу «Объект» и удалите ссылку для позднего связывания (и повторите тестирование). Таким образом, ваши ссылки не отклеятся на 64-битной машине при развертывании.
Private Enum ChartConstants
chDimSeriesNames = 0
chDimCategories = 1
chDimValues = 2
chDataBound = 0
chAxisPositionValue = -8
chAxisPositionCategory = -7
chChartTypePie = 18
End Enum
Помните, что вы также можете предоставить пользователю доступ к форме свойств PivotChart, спискам полей и зонам размещения. Или они могут щелкнуть правой кнопкой мыши по диаграмме, чтобы перейти к ним.
(Примечание. Это все еще новое для меня открытие, поэтому я постараюсь обновить этот ответ, если найду какие-нибудь ошибки).