|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.07.2008, 08:03 | #1 |
Регистрация: 07.07.2008
Сообщений: 6
|
Как обновить диаграмму на экранной форме?
Всем привет!
В общем-то вопрос вот в чём - какой командой принудительно обновить диаграмму в форме? Создана экранная форма. В этой форме есть диаграмма на основе данных из запроса. Запрос в свою очередь составлен на выборке из таблицы. При работе в форме - выбираются какие-то значения; на основе этих значений пересчитывается таблица. И вот после этого пересчёта надо обновить диаграмму. А она не обновляется. Вернее, обновляется, но не спешит отобразить на экране саму себя. В окне диаграммы появляется молочный цвет, а сами кривые где-то "прячутся". Что характерно для этой ситуации? Кривые появляются после перевода фокуса ввода на другой элемент формы. Пока не переведёшь фокус - диаграмма не обновится (один раз я целую неделю тупо ждал обновления, но так и не дождался ничего, кроме увольнения за прогулы 5 рабочих дней). Что я только не перепробовал! В программном коде - [Диаграмма 527].Requery; [Forms]!...Refresh - не действуют. Пробовал программно передавать фокус другим элементам формы. Да, эти операторы выполняются, но обновления на экране самой диаграммы не происходит. Правильнее сказать не "обновление", а "отображение обновлённой". Прочёл в книжке, что при изменении запроса (источника данных для диагр.) автоматически должно происходить обновление диаграммы. Написал в программном коде открытие запроса, его обновление (Refresh), но проблема осталась. Не хочет диаграмма отображать себя обновлённую. Стесняется что ли? Подскажите, пожалуйста, в каком направлении ещё попробовать свои силы, чтобы заставить диаграмму показывать самоё себя при изменении данных для построения кривых этой самой диаграммы? |
07.07.2008, 09:04 | #2 | |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
Цитата:
Другой вариант-попробуйте на другом ПК, может у Вас просто не хватает аппаратных возможностей (памяти), хотя она может "съедаться" и в процессе работы с бд. Вообще причин может быть масса, на мой взгляд лучший способ - передача данных в ексель и формировании в нем диаграмм любого типа.. |
|
10.07.2008, 08:39 | #3 |
Регистрация: 07.07.2008
Сообщений: 6
|
Извиняюсь, сразу не объяснил толком - диаграмма обновляется, если я перевожу фокус на другое поле МЫШКОЙ. То есть, кликаю правой кнопкой по другому полю, и диаграмма прорисовывается.
Или перевожу экранную форму в режим конструктора. При возвращении в режим формы - обновлённая диаграмма на своём месте. Или кликаю два раза по полю с диаграммой. Запускается MS Graph. После его закрытия тоже диаграмма рисуется. Получается, что данные для диаграммы пересчитываются нормально. И сама диаграмма пересчитывается. Но вот почему-то заставить отбразиться обновлённую диаграмму можно только принудительно. Программно - не получается. Все операторы обновления (Refresh, Requer) почему-то не работают на отображение обновленной диаграммы. |
10.07.2008, 08:54 | #4 | |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
Цитата:
Ну да ладно.. Приведите здесь пример Вашего кода. |
|
10.07.2008, 11:33 | #5 |
Регистрация: 07.07.2008
Сообщений: 6
|
Щаз... Ван сек...
В начале кода идёт пересчёт таблицы. На основе этой таблицы построен запрос. А уже на этом запросе основана диаграмма.
В конуе кода - мои потуги заставить диаграмму показывать свои изменения на экране. Никакой реакции от неё, пока не кликну мышкой по другому полю на экранной форме. |
10.07.2008, 14:57 | #6 | |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
Цитата:
[Диаграмма527].Requery [Диаграмма527].SetFocus Попробуйте вместо вышеупомянутого сделать: Me.Диаграмма527.Requery |
|
11.07.2008, 02:41 | #7 |
Регистрация: 07.07.2008
Сообщений: 6
|
Вау! Спасибо огромное! Сейчас попробую. О результате доложу. :-)
А код я составлял от начала и до конца. Мною писано, мною отлаживается. Сразу скажу, что я без системного образования, программист-любитель. Поэтому всегда благодарен за советы "профи" - "маладому". |
11.07.2008, 09:10 | #8 |
Регистрация: 07.07.2008
Сообщений: 6
|
Работает!!!
Ничего не понимаю!... Моя конструкция не работала: [Диаграмма527].Requery А ваша заработала: Me.Диаграмма527.Requery Ужели "великая" разница в этих двух операторах? Спасибо огромное за совет! Приятно, когда программа работает изящно, и всё послушно программисту. |
11.07.2008, 11:23 | #9 | |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
Цитата:
|
|
15.07.2008, 02:16 | #10 |
Регистрация: 07.07.2008
Сообщений: 6
|
Ещё одни "тормоза" в программе...
Замечено ещё одно подтормаживание в работе Access. При нажатии на кнопку связанная с этим событием (Нажатие) процедура не запускается сразу, а "ждёт" особого приглашения в виде кликания мышкой по любому другому элементу формы. Часто даже по свободному пространству формы.
Гложет меня сомнение, что это проделки вируса, который обосновался в компьютере. Отсюда логический вывод - предохраняйтесь! Никто не сталкивался с такой проблемой? Нажимаешь на кнопку, и связанная с этим процедура заработала, как и положено. А иной раз нажмёшь на кнопку и - тишина, никакого движения. Комп как будто замер. Кликнул мышкой - и всё ожило и начало работать. Бывало у кого-нибудь такое? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как обновить Dr web? | jenja | Безопасность, Шифрование | 2 | 09.03.2009 14:23 |
в диаграмму таблицу | Exo | Microsoft Office Excel | 2 | 16.04.2008 13:01 |
По имеющимся данным построить диаграмму | Raptor | Помощь студентам | 1 | 15.12.2007 19:53 |
Гиперссылка на диаграмму | Nasya | Microsoft Office Excel | 1 | 23.07.2007 20:08 |