Как перекрасить Microsoft Chart в форму доступа - PullRequest
2 голосов
/ 18 марта 2011

У меня есть подчиненная форма , которая устанавливает RowSource объекта Microsoft Chart 5.0 в его родительской форме.

РЕДАКТИРОВАТЬ: Тип источника строки для графика:Список значений.

Однако график не рисует сам себя, но любое действие, которое обычно генерирует перерисовку (перетаскивает другое окно доступа, минимизирует его, иногда теряет и восстанавливает фокус), действительно перерисовывает его.Другими словами, график не отображается и не изменяется автоматически.

Как заставить перерисовать диаграмму после действия подчиненной формы?

Они не оказали никакого влияния:

parent.Referesh
parent.Repaint
parent.TheChart.Refresh

И, к сожалению, этого не существует:

parent.TheChart.Repaint

Использование: Access 2003

Ответы [ 3 ]

3 голосов
/ 18 марта 2011

Проблема не в перерисовке графика.Скорее всего, используемая вами подчиненная форма извлекает данные из запроса или таблицы.

Необходимо обновить значения в объекте «источник данных», который предоставляет данные подчиненной формы (или запрос, или таблицу).,Затем повторите запрос к графическому объекту в mainform.

Я сделал очень простой пример в MS-Acess 2000, и он отлично работал:

  • Таблица (t01_fruits) с тремя столбцами (frt_id, frt_name, frt_qty).
  • Подформа, основанная на таблице t01.
  • Основная форма с предыдущей подчиненной формой, круговая диаграммана основании таблицы t01_fruits и кнопки.В событии OnClick кнопки я помещаю только me.graph1.requery.

Когда я обновляю количество фруктов в подчиненной форме внутри главной формы, с графиком ничего не происходит.Когда я нажимаю кнопку, график обновляется корректно.

0 голосов
/ 02 декабря 2016

У меня была похожая проблема, подобная этой, с главной страницей с подформами, включая 2 с графиками - и решение для ее обновления было таким:

me.subForm.Requery
me.subForm!Graph1.Requery

Только когда вы выполняете команды в этом порядке,это будет корректно обновлять график.

Я знаю, что прошло много времени с тех пор, как был задан вопрос, но на тот случай, если у кого-то еще возникнет такая проблема.

0 голосов
/ 18 августа 2014

Я также столкнулся с той же проблемой при обновлении диаграммы после обновления информации в форме. Я получил решение этой проблемы путем повторного выполнения диаграммы после обновления папки входящих сообщений, связывающей с изменением данных.

 Private Sub txtFinAgreeEnacDt_BeforeUpdate(Cancel As Integer)
    Me.graphCRMStatus.Requery
 end sub  


 Private Sub txtFinAgreeEnacDt_AfterUpdate()
     Me.Requery
 End Sub

Я - форма, держащая граф ....

...