2009-04-14 3 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 году по моему опыту. Таким образом, многие разработчики расширенного доступа избегают этого. Сводные таблицы не существовали до A2003, и я вспоминаю, что у людей возникают проблемы с их работой. –

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 Shared \ Web Components \ 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, спискам полей и зонам переадресации. Или они могут щелкнуть правой кнопкой мыши диаграмму, чтобы добраться до них.

(Примечание - это еще новое открытие для меня, так я постараюсь обновить этот ответ, если я найду какие-либо Гоча.)

+0

вот статья Майка Гундерлой с использованием vba-диаграмм в A2002 http://msdn.microsoft.com/en-us/library/aa155735%28office.10%29.aspx –

Смежные вопросы