Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 07.07.2008, 08:03   #1
kkkk30
 
Регистрация: 07.07.2008
Сообщений: 6
По умолчанию Как обновить диаграмму на экранной форме?

Всем привет!

В общем-то вопрос вот в чём - какой командой принудительно обновить диаграмму в форме?

Создана экранная форма. В этой форме есть диаграмма на основе данных из запроса. Запрос в свою очередь составлен на выборке из таблицы. При работе в форме - выбираются какие-то значения; на основе этих значений пересчитывается таблица. И вот после этого пересчёта надо обновить диаграмму. А она не обновляется. Вернее, обновляется, но не спешит отобразить на экране саму себя. В окне диаграммы появляется молочный цвет, а сами кривые где-то "прячутся".

Что характерно для этой ситуации? Кривые появляются после перевода фокуса ввода на другой элемент формы. Пока не переведёшь фокус - диаграмма не обновится (один раз я целую неделю тупо ждал обновления, но так и не дождался ничего, кроме увольнения за прогулы 5 рабочих дней).
Что я только не перепробовал! В программном коде - [Диаграмма 527].Requery; [Forms]!...Refresh - не действуют. Пробовал программно передавать фокус другим элементам формы. Да, эти операторы выполняются, но обновления на экране самой диаграммы не происходит. Правильнее сказать не "обновление", а "отображение обновлённой".
Прочёл в книжке, что при изменении запроса (источника данных для диагр.) автоматически должно происходить обновление диаграммы. Написал в программном коде открытие запроса, его обновление (Refresh), но проблема осталась. Не хочет диаграмма отображать себя обновлённую. Стесняется что ли?

Подскажите, пожалуйста, в каком направлении ещё попробовать свои силы, чтобы заставить диаграмму показывать самоё себя при изменении данных для построения кривых этой самой диаграммы?
kkkk30 вне форума   Ответить с цитированием
Старый 07.07.2008, 09:04   #2
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от kkkk30 Посмотреть сообщение
Кривые появляются после перевода фокуса ввода на другой элемент формы. Пока не переведёшь фокус - диаграмма не обновится..
А на какое событие поля (или формы) происходит обновление? При переводе фокуса событий может происходить множество. Есть сомнение, что процедура пересчета и обновление поля с диаграммой именно на это событие. Это все-таки это так, попробуйте процедуру пересчета производить на событие на AfterUpdate с обязательным requery поля.
Другой вариант-попробуйте на другом ПК, может у Вас просто не хватает аппаратных возможностей (памяти), хотя она может "съедаться" и в процессе работы с бд.
Вообще причин может быть масса, на мой взгляд лучший способ - передача данных в ексель и формировании в нем диаграмм любого типа..
Abrakadabra вне форума   Ответить с цитированием
Старый 10.07.2008, 08:39   #3
kkkk30
 
Регистрация: 07.07.2008
Сообщений: 6
По умолчанию

Извиняюсь, сразу не объяснил толком - диаграмма обновляется, если я перевожу фокус на другое поле МЫШКОЙ. То есть, кликаю правой кнопкой по другому полю, и диаграмма прорисовывается.

Или перевожу экранную форму в режим конструктора. При возвращении в режим формы - обновлённая диаграмма на своём месте.

Или кликаю два раза по полю с диаграммой. Запускается MS Graph. После его закрытия тоже диаграмма рисуется.

Получается, что данные для диаграммы пересчитываются нормально. И сама диаграмма пересчитывается. Но вот почему-то заставить отбразиться обновлённую диаграмму можно только принудительно. Программно - не получается. Все операторы обновления (Refresh, Requer) почему-то не работают на отображение обновленной диаграммы.
kkkk30 вне форума   Ответить с цитированием
Старый 10.07.2008, 08:54   #4
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от kkkk30 Посмотреть сообщение
Извиняюсь, сразу не объяснил толком - диаграмма обновляется, если я перевожу фокус на другое поле МЫШКОЙ. То есть, кликаю правой кнопкой по другому полю, и диаграмма прорисовывается.

Или перевожу экранную форму в режим конструктора. При возвращении в режим формы - обновлённая диаграмма на своём месте.

Или кликаю два раза по полю с диаграммой. Запускается MS Graph. После его закрытия тоже диаграмма рисуется.

Получается, что данные для диаграммы пересчитываются нормально. И сама диаграмма пересчитывается. Но вот почему-то заставить отбразиться обновлённую диаграмму можно только принудительно. Программно - не получается. Все операторы обновления (Refresh, Requer) почему-то не работают на отображение обновленной диаграммы.
Вы не ответили на мой вопрос..
Ну да ладно.. Приведите здесь пример Вашего кода.
Abrakadabra вне форума   Ответить с цитированием
Старый 10.07.2008, 11:33   #5
kkkk30
 
Регистрация: 07.07.2008
Сообщений: 6
По умолчанию Щаз... Ван сек...

В начале кода идёт пересчёт таблицы. На основе этой таблицы построен запрос. А уже на этом запросе основана диаграмма.
В конуе кода - мои потуги заставить диаграмму показывать свои изменения на экране. Никакой реакции от неё, пока не кликну мышкой по другому полю на экранной форме.
Вложения
Тип файла: doc Private Sub кн.doc (42.0 Кб, 29 просмотров)
kkkk30 вне форума   Ответить с цитированием
Старый 10.07.2008, 14:57   #6
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от kkkk30 Посмотреть сообщение
В начале кода идёт пересчёт таблицы. На основе этой таблицы построен запрос. А уже на этом запросе основана диаграмма.
В конуе кода - мои потуги заставить диаграмму показывать свои изменения на экране. Никакой реакции от неё, пока не кликну мышкой по другому полю на экранной форме.
Это Вы добавили?

[Диаграмма527].Requery
[Диаграмма527].SetFocus


Попробуйте вместо вышеупомянутого сделать:
Me.Диаграмма527.Requery
Abrakadabra вне форума   Ответить с цитированием
Старый 11.07.2008, 02:41   #7
kkkk30
 
Регистрация: 07.07.2008
Сообщений: 6
По умолчанию

Вау! Спасибо огромное! Сейчас попробую. О результате доложу. :-)
А код я составлял от начала и до конца. Мною писано, мною отлаживается. Сразу скажу, что я без системного образования, программист-любитель. Поэтому всегда благодарен за советы "профи" - "маладому".
kkkk30 вне форума   Ответить с цитированием
Старый 11.07.2008, 09:10   #8
kkkk30
 
Регистрация: 07.07.2008
Сообщений: 6
По умолчанию

Работает!!!

Ничего не понимаю!...
Моя конструкция не работала: [Диаграмма527].Requery
А ваша заработала: Me.Диаграмма527.Requery
Ужели "великая" разница в этих двух операторах?

Спасибо огромное за совет! Приятно, когда программа работает изящно, и всё послушно программисту.
kkkk30 вне форума   Ответить с цитированием
Старый 11.07.2008, 11:23   #9
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от kkkk30 Посмотреть сообщение
Работает!!!

Ничего не понимаю!...
Моя конструкция не работала: [Диаграмма527].Requery
А ваша заработала: Me.Диаграмма527.Requery
Ужели "великая" разница в этих двух операторах?

Спасибо огромное за совет! Приятно, когда программа работает изящно, и всё послушно программисту.
Не такая уж и великая, но в Вашем случае она решающая. В моем варианте обновляется само поле, а не источник, как в Вашем.
Abrakadabra вне форума   Ответить с цитированием
Старый 15.07.2008, 02:16   #10
kkkk30
 
Регистрация: 07.07.2008
Сообщений: 6
По умолчанию Ещё одни "тормоза" в программе...

Замечено ещё одно подтормаживание в работе Access. При нажатии на кнопку связанная с этим событием (Нажатие) процедура не запускается сразу, а "ждёт" особого приглашения в виде кликания мышкой по любому другому элементу формы. Часто даже по свободному пространству формы.

Гложет меня сомнение, что это проделки вируса, который обосновался в компьютере. Отсюда логический вывод - предохраняйтесь!

Никто не сталкивался с такой проблемой? Нажимаешь на кнопку, и связанная с этим процедура заработала, как и положено. А иной раз нажмёшь на кнопку и - тишина, никакого движения. Комп как будто замер. Кликнул мышкой - и всё ожило и начало работать. Бывало у кого-нибудь такое?
kkkk30 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как обновить Dr web? jenja Безопасность, Шифрование 2 09.03.2009 15:23
в диаграмму таблицу Exo Microsoft Office Excel 2 16.04.2008 13:01
По имеющимся данным построить диаграмму Raptor Помощь студентам 1 15.12.2007 20:53
Гиперссылка на диаграмму Nasya Microsoft Office Excel 1 23.07.2007 20:08


01:50.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.