Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход на нужную запись в подчененной форме / 14 сообщений из 14, страница 1 из 1
25.01.2005, 12:18:22
    #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
25.01.2005, 12:20:11
    #32882081
Mild
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
Забыл добавить у меня
Access Xp, SQL 2000, ADP
...
Рейтинг: 0 / 0
25.01.2005, 12:22:41
    #32882088
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
а може тыть
rsRecord.FindFIRST
...
Рейтинг: 0 / 0
25.01.2005, 12:24:00
    #32882095
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
MildЧто можно сделать ????
Ждать события FetchComplete у рекордсета
Или проверять св-во State
...
Рейтинг: 0 / 0
25.01.2005, 12:24:49
    #32882097
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
Alexus12а може тыть
rsRecord.FindFIRST
В адошном-то рекордсете?
...
Рейтинг: 0 / 0
25.01.2005, 12:26:08
    #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
25.01.2005, 12:47:15
    #32882167
Александр Спелицин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
После переоткрытия набора данных сделайте явный переход на последнюю запись. В результате все записи будут закачаны. Причем значительно быстрее, чем ждать, когда аксес сам соизволит это сделать.
...
Рейтинг: 0 / 0
25.01.2005, 12:52:45
    #32882184
Mild
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
Попробывал добавить
Do While rsRecord.State <> 1
DoEvents
Loop
но так вобще как то странно работает, курсор то он ставит на нужную запись,но данные набора записей как бы не перемещает вверх.
То есть вот допустим на форме видно толко 10 записей(на самом деле их около 3000) , после обработки события курсор то перемещается но нужную запись(допуси она 125 по счету , начиная сверху) , НО, сам курсор как бы не видно, нужно при помощи скрола подчененной формы спуститься на 125 запись и там будет стоять курсор :-)))
Совсем неудобно получается
...
Рейтинг: 0 / 0
25.01.2005, 13:02:35
    #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
25.01.2005, 13:31:39
    #32882286
Mild
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
Подскажите пожалуйста......
...
Рейтинг: 0 / 0
25.01.2005, 14:57:27
    #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
25.01.2005, 14:57:39
    #32882563
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
У меня была аналогичная ситуация.
И вот результат: в общем виде мне не удалось справиться с задачей.
В общем виде - значит пользователь может применять различные сортировки и фильтры. Было перепробовано практически все. И обработка события Fetch_Complete и куча разного другого. В общем случае - ничего не получилось.
Дело в том что после Requery необходимо выждать какое-то время, прежде чем Find сможет начать адекватно работать. Если включены сортировки, то время увеличивается. И обработка события Fetch_Complete и других событий не помогает. Пришлось по таймеру делать задержку, зависящую от количества записей в форме, хотя и нет гарантии, что даже эта задержка окажется достаточной для любого количества записей.
Но получилось достаточно неплохо в одном частном случае.
А именно - источник данных подчиненной формы - временная таблица. А вместо Requery - удаляю все записи из этой таблицы и вновь добавляю уже новые записи + Requery формы. Но без задержки все равно не обошлось, делаю задержку и после этого rs.Find Criteria.
...
Рейтинг: 0 / 0
25.01.2005, 15:00:13
    #32882568
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
И еще одна тонкость. После Requery делал "перемотку" рекордсета вперед и назад
Код: plaintext
1.
2.
rs.MoveLast
rs.MoveFirst
А без этого на некоторых рекордсетах мышом не мог переместиться к нужной записи - был и такой глюк.
...
Рейтинг: 0 / 0
25.01.2005, 15:02:58
    #32882581
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на нужную запись в подчененной форме
Но все это по самому рекордсету, никаких клонов и букмарков не потребовалось. Хотя клоны и букмарки тоже помучал изрядно - но безрезультатно.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход на нужную запись в подчененной форме / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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