powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление содержимого формы в АДП
24 сообщений из 24, страница 1 из 1
Обновление содержимого формы в АДП
    #32464595
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"вспомошествуйте, братья в Аксессе, бо мы сами не местные" (с)

Cтолкнулся вот с проблемкой, которую пока не получается победить...
Имеется такая ситуация:
Форма. На ней подчиненная. Исправления записей в подчиненной меняют содержимое главной.
Вы спросите: Зачем? Отвечу: надо - там зело толстые вычисления, которые "на лету" делать очень неудобственно.
В МДБ такие изменения, сделанные из этой же программы, тут же отображались (т.к. там я и присваивал в поле), а тут я вычисления переложил в триггер. И они, соответственно, сами не спешат появляться.

Естественно, попробовал

t=me.parent.id
me.parent.requery ' (refresh)
me.parent.recordset.find "id=" & t

Работает, если в главной форме 5-10 записей. Если пара тысяч, последняя строка не отрабатыватся, вернее, отрабатывается, но

debug.print me.parent.recordset.eof

пишет True, и форма показывает первую запись.

Возможно, достаточно после requery как-то дождаться окончания загрузки содержимого формы, но как? (movelast тоже не дал ожидаемого результата).

М.б. я вообще не по тому пути иду - задача д.б. достаточно известной и иметь "обычное" решение.

Как обновить рекордсет формы и остаться на той же записи? (Или, если возможно, как обновить и переотобразить текущую запись этого рекордсета?)
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32464633
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вроде в ADO можно обновлять текущую запись.
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32464636
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если гл. форма
для чтения, то моженшь
восп.
rst.resync
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32464669
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Так вроде в ADO можно обновлять текущую запись.

Бат вай?

> если гл. форма для чтения, то моженшь восп. rst.resync

Форма и для изменений тоже. resync я здесь нашел в обед, но он настолько долго отрабатывается (ок. 30 сек. на строку me.parent.recordset.resync), что я даже не смотрел, что он делает...
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32464771
alexeyK-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у me.recordset.resync есть два параметра

.Resync adAffectCurrent, adResyncAllValues

так обновится только текущая запись
особое внимание следует обратить строке синхронизации и свойству уникальная таблица

и еще то что делает триггер не совсем обязательно использовать в форме - в форме может быть вычисляемое поле
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32464775
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2alexeyK

Спасибо - то, что нужно. Работает вроде-бы :)

(Млин, надо читать F1, ХТ сказал же уже :(( )

---
Про вычисляемое поле, это понятно. Но там действительно очень "толстый" расчет, и его результат используется во многих отчетах/запросах. Легче рассчитывать по мере ввода.
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466230
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой-ой-ой!!

Создаю форму. Источник данных - серверная таблица. Кладу на нее флажок. Источник поля - bit-поле таблицы.
Делаю
Forms!форма.Resync adAffectCurrent, adResyncAllValues
(можно без последних двух аргументов)

Жму на флажок - привет Биллу (приложение будет закрыто, отправлять/нет отчет?)

Как это вылечить?! :((

------------
ЗЫ. А можно все-таки как-нибудь дождаться окончания загрузки записей в форму?
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466240
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) SP все стоят?
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466244
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Office XP SP2
MSDE SP3
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466254
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SP3???
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466258
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SP3...
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466284
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я же тебе сказал
если для чтения, то resync
для редактирования
исп. docmd.FindRecord
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466290
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)
Буду пробовать, спасибо.
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466671
GeoЗЫ. А можно все-таки как-нибудь дождаться окончания загрузки записей в форму?\r
Можно. Вот здесь же показывал. Или я неправильно понял вопрос? :)
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32466765
Да, и ещё в тему хотелось бы добавить два соображения:

1) В своих экспериментах с формой, добиваясь обновления только одной записи, я использовал метод Resync, применяя его к ADO-рекордсету, а не к форме, вот так:
Код: plaintext
Me.Recordset.Resync adAffectCurrent

и никаких проблем не встретил. Может быть, попробовать и так?
Выше АлексейК именно такой образец кода и приводил.

2) Когда я применял в ADP в качестве источника для флажка bit-поле в таблице, то встретил ряд существенных неудобств (к сожалению, я уже подробностей не помню - давно было), и поэтому взял себе за правило использовать для этой цели smallint-поля, что разом решило тогда мои проблемы.
Может быть, такой подход решит и вышеназванную проблему?
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32467030
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после установки аксесса 2003 и Jet sp8
при операциях с рекордсет вылетать в АКСЕССЕ 2002 перестало

кроме того можно создать дополнительный рекордсет тянущий одну запись и с ним работать

и еще:
аксесс посылает в микрософт при изменении флажка в форме после операций с рекордсетом если ты имеешь ввиду именно это то поставь прозрачный прямоугольник перед флажком и на его клик сделай

me.recordset!falgfieldname= not me.recordset!falgfieldname
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32467032
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кроме того можно создать дополнительный рекордсет тянущий одну запись и с ним работать

это я в другом топике отвечал сюда скопировал случайно
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32467217
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Тимур Рахимов
Cпасибо.
Ряд существенных неудобств, с которыми я уже познакомился, это то, что true в bit = 1, а не -1, и невозможность применять к такому полю max/min.
Resync делал именно через recordset.

2АлексейК
Спасибо, попробую.
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32467956
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smallint не спасает. Все равно вылетает.
Поставил Office 2003, SP 3 для Office XP, SP8 для jet.
Результат тот же. Причем аналогичной проблемы в самом Office 2003 не увидел. Эх, придется лепить прозрачные прямоугольники, млин... Или же пропробовать отлавливать щелчек на флажке...
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32467957
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ. Docmd.Find работает медленно очень :(
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32468409
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда...
me.recordset.resync в форме для редактирования использовать нельзя.
me.reqyery: Me.Recordset.Find в форме для редактирования использовать нельзя.
(и тот и другой несколько раз подряд вызываю - ошибка "отправить отчет в микрософт?".)
Только

docmd.gotorecord ,,movelast
docmd.findrecord

А работает это не быстро... :(
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32468459
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может не совсем в тему..
я при редактировании записи для сохранения сделанных изменений применял
dirty=true или false (ADP)
переход не происходит
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32468582
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"А работает это не быстро"

все правильно она работает.
ты же запускаешь
полное обновление.
на экран выводятся
первые записи, а
docmd.find
начинает работать, когда
ВСЕ записи приедут на клиента
...
Рейтинг: 0 / 0
Обновление содержимого формы в АДП
    #32468712
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понимаю. И не спорю. Но работоспособный resync был бы куда приятнее...
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Обновление содержимого формы в АДП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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