powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход на нужную запись в подчененной форме
14 сообщений из 14, страница 1 из 1
Переход на нужную запись в подчененной форме
    #32882073
Mild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот процедурка :

Private Sub ID_AfterUpdate()
[Forms]![Форма]![ПФ].Form.Requery
Set rsRecord = [Forms]![Форма]![ПФ].Form.RecordsetClone
rsRecord.Find "ID = " & Me.Id.Value
[Forms]![Форма]![ПФ].Form.Bookmark = rsRecord.Bookmark
end sub
В подчененной форме около 3000 записей
Работает вроде бы верно все, но если вдруг нужная запиь находиться "далеко" внизу, то он курсор не перемещает на нужную запись а пишет
Run-time error '3021' :
BOF или EOF имеет значение True, либо текущая запись удалена.
Для выполнения операции требуется текущая запись.

Запись конечно же присутствует но курсор на нее не перемещает.
Может быть такой поиск не расчетан на работу где большое кол-во записей???
Что можно сделать ????
Спасибо!!!
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882081
Mild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Забыл добавить у меня
Access Xp, SQL 2000, ADP
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882088
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а може тыть
rsRecord.FindFIRST
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882095
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MildЧто можно сделать ????
Ждать события FetchComplete у рекордсета
Или проверять св-во State
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882097
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexus12а може тыть
rsRecord.FindFIRST
В адошном-то рекордсете?
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882102
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub ID_AfterUpdate()
[Forms]![Форма]![ПФ].Form.Requery
Set rsRecord = [Forms]![Форма]![ПФ].Form.RecordsetClone.clone
Do While rsRecord.State <>  1   
    DoEvents 'Для рекордсетов с очень большим объемом записей желательно вставить API Sleep 
Loop  

rsRecord.Find "ID = " & Me.Id.Value
[Forms]![Форма]![ПФ].Form.Bookmark = rsRecord.Bookmark
end sub
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882167
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После переоткрытия набора данных сделайте явный переход на последнюю запись. В результате все записи будут закачаны. Причем значительно быстрее, чем ждать, когда аксес сам соизволит это сделать.
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882184
Mild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробывал добавить
Do While rsRecord.State <> 1
DoEvents
Loop
но так вобще как то странно работает, курсор то он ставит на нужную запись,но данные набора записей как бы не перемещает вверх.
То есть вот допустим на форме видно толко 10 записей(на самом деле их около 3000) , после обработки события курсор то перемещается но нужную запись(допуси она 125 по счету , начиная сверху) , НО, сам курсор как бы не видно, нужно при помощи скрола подчененной формы спуститься на 125 запись и там будет стоять курсор :-)))
Совсем неудобно получается
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882207
Mild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем понял
"После переоткрытия набора данных сделайте явный переход на последнюю запись."

Private Sub ID_AfterUpdate()
[Forms]![Форма]![ПФ].Form.Requery
Set rsRecord = [Forms]![Форма]![ПФ].Form.RecordsetClone
----------
rsRecord.MoveLast
----------
Do While rsRecord.State <> 1
DoEvents
Loop

rsRecord.Find "ID = " & Me.Id.Value
[Forms]![Форма]![ПФ].Form.Bookmark = rsRecord.Bookmark
end sub

Так????? Но так не работает как хотелось бы
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882286
Mild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста......
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882562
Mild
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот через поиск нашел точно такую же проблемму : http://www.sql.ru/forum/actualthread.aspx?tid=11135&hl=%ef%ee%e8%f1%ea+%e7%e0%ef%e8%f1%e8

Делал и так
Private Sub ID_AfterUpdate()
[Forms]![Форма]![ПФ].Form.Requery
----------------------------
Docmd.gotorecord,,, aclast
----------------------------
Set rsRecord = [Forms]![Форма]![ПФ].Form.RecordsetClone
rsRecord.Find "ID = " & Me.Id.Value
[Forms]![Форма]![ПФ].Form.Bookmark = rsRecord.Bookmark
end sub
(такая же ошибка что тип treofz запись удалена и т.д)
и так

Private Sub ID_AfterUpdate()
[Forms]![Форма]![ПФ].Form.Requery
----------------------------
RunCommand acCmdRefresh
----------------------------
Set rsRecord = [Forms]![Форма]![ПФ].Form.RecordsetClone
rsRecord.Find "ID = " & Me.Id.Value
[Forms]![Форма]![ПФ].Form.Bookmark = rsRecord.Bookmark
end sub
(пишет что команда "обновить" в данное время не работает)
И снова не работает :-(((
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882563
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня была аналогичная ситуация.
И вот результат: в общем виде мне не удалось справиться с задачей.
В общем виде - значит пользователь может применять различные сортировки и фильтры. Было перепробовано практически все. И обработка события Fetch_Complete и куча разного другого. В общем случае - ничего не получилось.
Дело в том что после Requery необходимо выждать какое-то время, прежде чем Find сможет начать адекватно работать. Если включены сортировки, то время увеличивается. И обработка события Fetch_Complete и других событий не помогает. Пришлось по таймеру делать задержку, зависящую от количества записей в форме, хотя и нет гарантии, что даже эта задержка окажется достаточной для любого количества записей.
Но получилось достаточно неплохо в одном частном случае.
А именно - источник данных подчиненной формы - временная таблица. А вместо Requery - удаляю все записи из этой таблицы и вновь добавляю уже новые записи + Requery формы. Но без задержки все равно не обошлось, делаю задержку и после этого rs.Find Criteria.
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882568
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще одна тонкость. После Requery делал "перемотку" рекордсета вперед и назад
Код: plaintext
1.
2.
rs.MoveLast
rs.MoveFirst
А без этого на некоторых рекордсетах мышом не мог переместиться к нужной записи - был и такой глюк.
...
Рейтинг: 0 / 0
Переход на нужную запись в подчененной форме
    #32882581
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но все это по самому рекордсету, никаких клонов и букмарков не потребовалось. Хотя клоны и букмарки тоже помучал изрядно - но безрезультатно.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход на нужную запись в подчененной форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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