|
|
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
"вспомошествуйте, братья в Аксессе, бо мы сами не местные" (с) 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 тоже не дал ожидаемого результата). М.б. я вообще не по тому пути иду - задача д.б. достаточно известной и иметь "обычное" решение. Как обновить рекордсет формы и остаться на той же записи? (Или, если возможно, как обновить и переотобразить текущую запись этого рекордсета?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 18:09 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
Так вроде в ADO можно обновлять текущую запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 18:30 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
если гл. форма для чтения, то моженшь восп. rst.resync ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 18:32 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
> Так вроде в ADO можно обновлять текущую запись. Бат вай? > если гл. форма для чтения, то моженшь восп. rst.resync Форма и для изменений тоже. resync я здесь нашел в обед, но он настолько долго отрабатывается (ок. 30 сек. на строку me.parent.recordset.resync), что я даже не смотрел, что он делает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 18:54 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
у me.recordset.resync есть два параметра .Resync adAffectCurrent, adResyncAllValues так обновится только текущая запись особое внимание следует обратить строке синхронизации и свойству уникальная таблица и еще то что делает триггер не совсем обязательно использовать в форме - в форме может быть вычисляемое поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 23:10 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
2alexeyK Спасибо - то, что нужно. Работает вроде-бы :) (Млин, надо читать F1, ХТ сказал же уже :(( ) --- Про вычисляемое поле, это понятно. Но там действительно очень "толстый" расчет, и его результат используется во многих отчетах/запросах. Легче рассчитывать по мере ввода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 23:22 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
Ой-ой-ой!! Создаю форму. Источник данных - серверная таблица. Кладу на нее флажок. Источник поля - bit-поле таблицы. Делаю Forms!форма.Resync adAffectCurrent, adResyncAllValues (можно без последних двух аргументов) Жму на флажок - привет Биллу (приложение будет закрыто, отправлять/нет отчет?) Как это вылечить?! :(( ------------ ЗЫ. А можно все-таки как-нибудь дождаться окончания загрузки записей в форму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 22:07 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
1) SP все стоят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 22:18 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
Office XP SP2 MSDE SP3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 22:22 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
SP3??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 22:58 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
SP3... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 23:10 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
я же тебе сказал если для чтения, то resync для редактирования исп. docmd.FindRecord ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 00:03 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
:) Буду пробовать, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 00:15 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
GeoЗЫ. А можно все-таки как-нибудь дождаться окончания загрузки записей в форму?\r Можно. Вот здесь же показывал. Или я неправильно понял вопрос? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 11:04 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
Да, и ещё в тему хотелось бы добавить два соображения: 1) В своих экспериментах с формой, добиваясь обновления только одной записи, я использовал метод Resync, применяя его к ADO-рекордсету, а не к форме, вот так: Код: plaintext и никаких проблем не встретил. Может быть, попробовать и так? Выше АлексейК именно такой образец кода и приводил. 2) Когда я применял в ADP в качестве источника для флажка bit-поле в таблице, то встретил ряд существенных неудобств (к сожалению, я уже подробностей не помню - давно было), и поэтому взял себе за правило использовать для этой цели smallint-поля, что разом решило тогда мои проблемы. Может быть, такой подход решит и вышеназванную проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 11:33 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
после установки аксесса 2003 и Jet sp8 при операциях с рекордсет вылетать в АКСЕССЕ 2002 перестало кроме того можно создать дополнительный рекордсет тянущий одну запись и с ним работать и еще: аксесс посылает в микрософт при изменении флажка в форме после операций с рекордсетом если ты имеешь ввиду именно это то поставь прозрачный прямоугольник перед флажком и на его клик сделай me.recordset!falgfieldname= not me.recordset!falgfieldname ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 13:04 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
кроме того можно создать дополнительный рекордсет тянущий одну запись и с ним работать это я в другом топике отвечал сюда скопировал случайно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 13:05 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
2 Тимур Рахимов Cпасибо. Ряд существенных неудобств, с которыми я уже познакомился, это то, что true в bit = 1, а не -1, и невозможность применять к такому полю max/min. Resync делал именно через recordset. 2АлексейК Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2004, 15:07 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
smallint не спасает. Все равно вылетает. Поставил Office 2003, SP 3 для Office XP, SP8 для jet. Результат тот же. Причем аналогичной проблемы в самом Office 2003 не увидел. Эх, придется лепить прозрачные прямоугольники, млин... Или же пропробовать отлавливать щелчек на флажке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2004, 13:43 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
ЗЫ. Docmd.Find работает медленно очень :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2004, 13:44 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
Мда... me.recordset.resync в форме для редактирования использовать нельзя. me.reqyery: Me.Recordset.Find в форме для редактирования использовать нельзя. (и тот и другой несколько раз подряд вызываю - ошибка "отправить отчет в микрософт?".) Только docmd.gotorecord ,,movelast docmd.findrecord А работает это не быстро... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2004, 02:18 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
может не совсем в тему.. я при редактировании записи для сохранения сделанных изменений применял dirty=true или false (ADP) переход не происходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2004, 07:46 |
|
||
|
Обновление содержимого формы в АДП
|
|||
|---|---|---|---|
|
#18+
"А работает это не быстро" все правильно она работает. ты же запускаешь полное обновление. на экран выводятся первые записи, а docmd.find начинает работать, когда ВСЕ записи приедут на клиента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2004, 10:16 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32467032&tid=1675587]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 454ms |

| 0 / 0 |
