Создание сводной диаграммы с использованием Access 2007 VBA - PullRequest
5 голосов
/ 14 апреля 2009

ОК, в Интернете нет абсолютно хороших статей, в которых можно найти объяснение или примеры кода для создания сводной диаграммы с использованием VBA. Мне это нужно, потому что мне нужна сводная диаграмма для отображения разных результатов в зависимости от выбора пользователя в форме. Есть некоторые для Excel, но синтаксис для Access другой. Я знаю, что это глупый вопрос, но если у кого-нибудь есть пример создания сводной диаграммы в VBA, я был бы очень признателен за помощь.

Ответы [ 2 ]

3 голосов
/ 15 апреля 2009

Ну, примерно через 3 дня поиска, я думаю, что нашел его. Не то, чтобы кто-то действительно заботился, у этого есть только как 6 представлений, говорит многое для полной ужасности VBA. В любом случае, в MSDN это скрыто в «Office XP», а не в Access, но неважно.

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

0 голосов
/ 11 ноября 2010

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

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

...