Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Дважды обновляется подформа / 25 сообщений из 27, страница 1 из 2
16.12.2003, 15:08:41
    #32354074
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
ADP 2000, SQL 2000
Есть главная форма с полями для критериев отбора данных в подчиненной.
Подчиненная на основе ХП. В InputParameters подчиненной указаны поля из главной. Строки в подчиненной раскрашены с применением условного форматирования.
Все замечательно выбирается при Me.SubForm.Requery,

НО

такое ощущение, что выборка дважды происходит (т.е. данные выводятся, красятся согласно условиям, затем еще раз то же самое перекрашиваются еще раз).
Смотрел в SQL Profiler - ХП выполняется 1 раз.
Requery подчиненной формы 1 раз стоит.

Есть какие-то мысли, как избежать второй раскраски ?
...
Рейтинг: 0 / 0
16.12.2003, 15:15:23
    #32354094
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Echo false
Me.SubForm.Requery
Echo true


==
кстати, а событий ТекущаяЗапись в подчиненой нет?
...
Рейтинг: 0 / 0
16.12.2003, 15:20:55
    #32354109
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Еще может влиять сортировка.
...
Рейтинг: 0 / 0
16.12.2003, 15:21:17
    #32354110
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Не помогло. Все равно дважды раскрашивает :(

Событий "Текущая запись" нет ни в главной, ни в подчиненной
...
Рейтинг: 0 / 0
16.12.2003, 15:25:41
    #32354118
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
2 incold
Сортировка есть только на уровне ХП.
В самой подформе сортировки нет
...
Рейтинг: 0 / 0
16.12.2003, 15:29:37
    #32354126
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Есть вариант из серии "танцев с бубнов и шаманства"

Вместо Requery использовать RecordSource=RecordSource
...
Рейтинг: 0 / 0
16.12.2003, 15:34:42
    #32354135
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Танец с бубнами тоже не оправдал ожиданий.
Видимо, музыка не та :))

Убрал все вычисляемые поля в подформе, пробовал входные параметры ставить невычисляемые (явно) - не помогает.

Все равно раскрашивает второй раз. При этом Access явно что-то делает, т.к. в строке статуса (внизу) появляется сообщение "Обработка..."
...
Рейтинг: 0 / 0
16.12.2003, 15:51:10
    #32354178
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
2Чумаков А.

Давай код вызова ХП (только в теги SRC его заключи - а то читать не удобно)
...
Рейтинг: 0 / 0
16.12.2003, 15:51:48
    #32354179
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Поспешил - кода вызова ХП может и не быть. Тогда давай, что есть :)
...
Рейтинг: 0 / 0
16.12.2003, 16:01:39
    #32354196
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Для начала наблюдение: оказалось, что ВСЕ подформы дважды обсчитываются при обновлении (в строке статуса "Обработка команды...").
Просто при раскрашивании "Условным форматированием" это заметно оказалось визуально.

Форма простецки обновляется:
Me!Demands_All_1.Requery

При этом: Главная форма [Demands_All] не привязана ни к чему.

В подформе: Источник записей ХП - dbo.Grid_Demands_All
Input Parameters: @M INT=Forms![Demands_All]![Month], @Y INT = Forms![Demands_All]![Year], @T CHAR = Forms![Demands_All]![DemandNumType], @NumD char = Nz(Forms![Demands_All]![Number]," "), @ID_Fil INT = getID_FIL(), @TypeDate INT = Forms![Demands_All]![SelectTypeDate]
...
Рейтинг: 0 / 0
16.12.2003, 16:04:02
    #32354197
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Причем при открытии формы подформе Requery не делаю (только просле обновления полей в главной) и все равно 2 раза "Обработка команды..."

Чего она в это время делает ума не приложу :(
...
Рейтинг: 0 / 0
17.12.2003, 06:03:15
    #32354648
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
да этот вопрос и меня мучает ужо давно.
это вызывает ужасные тормоза ....
кто-нибудь поооомогитеее!!!!!
эта "обработка команды...."
чё он там делает, чё ждет?
...
Рейтинг: 0 / 0
17.12.2003, 09:05:55
    #32354705
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
2вадя
>эта "обработка команды...."
>чё он там делает, чё ждет?

Чё он делает? Форматирует! (хорошо что не диск):)
У меня были тормоза на прорисовки в одной и так слишком тормознутой ленточной подчиненой формы - снес на хер это форматирование (вместе с ленточной формой) - поставил ЛистВью - сижу теперь сам форматирую
...
Рейтинг: 0 / 0
17.12.2003, 09:31:46
    #32354720
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
2 Виктор

и как успехи?
думаю что немало трудностей преодолел на этом пути.
Все таки - нетривиальная задача сделать из листбокса подобие подформы
там и сортировка и фильтры, обработка событий полей, контролы - кнопки, рисунки, форматированный текст

может есть яркий демо - примерчик ?
...
Рейтинг: 0 / 0
17.12.2003, 09:35:11
    #32354726
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
2АлексейК
>Все таки - нетривиальная задача сделать из листбокса подобие подформы

не ListBox, a ListView (см. фразу поставил ЛистВью )
Так что про ЛистВью рассказать?
...
Рейтинг: 0 / 0
17.12.2003, 09:38:35
    #32354733
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
я видел примерчик на листбоксе - поэтому не обратил внимания ...))

в принципе очень интересно что получилось в чем плюсы в чем минусы
...
Рейтинг: 0 / 0
17.12.2003, 09:57:38
    #32354763
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
виктор.
так как насчет примерчика?
...
Рейтинг: 0 / 0
17.12.2003, 10:19:00
    #32354797
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
2АлексейК
>так как насчет примерчика?

дык его готовить надо :)

У меня все журналы сделаны на листвью - все работает через модуль класса, который управляет сортировкой, ресазингом (спасибо Гетцу), поиском, плюс управление тулбаром (открыть/удалить и т.п. 1 или многих записей), запоминает размер колонок и т.п. и т.д. Форматировние в ЛистВью свел к минимуму (да в журналах оно не очень-то нужно): серым отображаються закрытые док-ты да всплывающие подсказки. Планирую ввести полную поддержку форматирования (с сложными условиями и т.п.), когда совсем припрет :)

Ты спроси конкретно, что нужно по Лист/ТриВью - помогу.
Можешь написать на е-маил senin ой-ля-ля zyx.ru
...
Рейтинг: 0 / 0
17.12.2003, 16:39:18
    #32355671
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
2Виктор\r
Чё он делает? Форматирует! (хорошо что не диск):) \r
У меня были тормоза на прорисовки в одной и так слишком тормознутой ленточной подчиненой формы - снес на хер это
\r
\r
несколько не понял...\r
он как бы всё сделал ужо ...\r
но форматировать так долго?\r
\r
Как работает форма?
...
Рейтинг: 0 / 0
02.12.2004, 08:04:03
    #32808740
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Господа, за год может у кого решилась проблема с двойным обновлением подформы ?
...
Рейтинг: 0 / 0
02.12.2004, 13:20:34
    #32809487
Дважды обновляется подформа
Странно, - подумал я сейчас - почему меня как-то эта проблема не беспокоит, хотя у меня почти все формы для просмотра данных построены именно так: табличная форма в качестве подформы, поля с критериями в главной форме с использованием InputParameters (ADP, Access 2000)?

Посмотрел в свой код и вспомнил, что эту проблему я решил ещё в начале 2001 года - я не использую Requery вообще! Вместо этого я, когда мне нужно обновить данные, просто перезаписываю свойство подформы RecordSource , примерно так:

Код: plaintext
1.
2.
3.
    const cstrMyFormRecSrc as String = "dbo.spMyProcedure"

    'при этом неявно происходит Requery
    Me.Controls("Subform1").Form.RecordSource = cstrMyFormRecSrc 

Кроме того, я устроил так, чтобы свойства RecordSource всех форм были бы пустыми при их открытии, и устанавливались бы явно кодом только тогда, когда необходимо показать записи (меня совсем не радовали лишние обращения к серверу при старте форм, когда пользователь-то даже ещё критериев не успел задать).

Такой подход с намеренным отказом от Requery в пользу трюков с RecordSource , хоть и явственно отдаёт шаманством, позволил решить тогда разом кучу проблем, в числе которых была и описанная автором темы.
...
Рейтинг: 0 / 0
02.12.2004, 13:27:11
    #32809503
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
автор
RecordSource всех форм были бы пустыми при их открытии, и устанавливались бы явно кодом только тогда, когда необходимо показать записи (меня совсем не радовали лишние обращения к серверу при старте форм, когда пользователь-то даже ещё критериев не успел задать).


Золотые слова! Формы на больших массивах сложно обсчитываемых данных вообще не успевают открываться за отпущенное им на то аксессом время. Даешь полный контроль над загрузкой данных логикой приложения!
...
Рейтинг: 0 / 0
02.12.2004, 14:08:05
    #32809645
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Странно все это.
Сделал как посоветовал Тимур. Хотя и ранее так пробовал.
Помогло мало. Все-таки, видимо, влияет наличие условного форматирования на подформе.
2 раза происходит обработка подформы :(
...
Рейтинг: 0 / 0
02.12.2004, 14:11:57
    #32809656
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
авторADP 2000, SQL 2000
Есть главная форма с полями для критериев отбора данных в подчиненной.
Подчиненная на основе ХП. В InputParameters подчиненной указаны поля из главной. Строки в подчиненной раскрашены с применением условного форматирования.

кстати в этом случае можно обновить данные без изменения рекордсоурса и реквери - изменив поле являющееся источником входного параметра (на старое значение)

не перескакивает на первую запись, может и моргает меньше.
...
Рейтинг: 0 / 0
02.12.2004, 14:14:26
    #32809665
Чумаков А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дважды обновляется подформа
Убрал условное форматирование.
Все равно, 2 раза наблюдаю в строке состояния "Обработка..."
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Дважды обновляется подформа / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]