|
|
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
Вот процедурка : 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, либо текущая запись удалена. Для выполнения операции требуется текущая запись. Запись конечно же присутствует но курсор на нее не перемещает. Может быть такой поиск не расчетан на работу где большое кол-во записей??? Что можно сделать ???? Спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:18:22 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
Забыл добавить у меня Access Xp, SQL 2000, ADP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:20:11 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
а може тыть rsRecord.FindFIRST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:22:41 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
MildЧто можно сделать ???? Ждать события FetchComplete у рекордсета Или проверять св-во State ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:24:00 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
Alexus12а може тыть rsRecord.FindFIRST В адошном-то рекордсете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:24:49 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
попробуй Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:26:08 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
После переоткрытия набора данных сделайте явный переход на последнюю запись. В результате все записи будут закачаны. Причем значительно быстрее, чем ждать, когда аксес сам соизволит это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:47:15 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
Попробывал добавить Do While rsRecord.State <> 1 DoEvents Loop но так вобще как то странно работает, курсор то он ставит на нужную запись,но данные набора записей как бы не перемещает вверх. То есть вот допустим на форме видно толко 10 записей(на самом деле их около 3000) , после обработки события курсор то перемещается но нужную запись(допуси она 125 по счету , начиная сверху) , НО, сам курсор как бы не видно, нужно при помощи скрола подчененной формы спуститься на 125 запись и там будет стоять курсор :-))) Совсем неудобно получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 12:52:45 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
Не совсем понял "После переоткрытия набора данных сделайте явный переход на последнюю запись." 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 Так????? Но так не работает как хотелось бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 13:02:35 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 13:31:39 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
Вот через поиск нашел точно такую же проблемму : 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 (пишет что команда "обновить" в данное время не работает) И снова не работает :-((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 14:57:27 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
У меня была аналогичная ситуация. И вот результат: в общем виде мне не удалось справиться с задачей. В общем виде - значит пользователь может применять различные сортировки и фильтры. Было перепробовано практически все. И обработка события Fetch_Complete и куча разного другого. В общем случае - ничего не получилось. Дело в том что после Requery необходимо выждать какое-то время, прежде чем Find сможет начать адекватно работать. Если включены сортировки, то время увеличивается. И обработка события Fetch_Complete и других событий не помогает. Пришлось по таймеру делать задержку, зависящую от количества записей в форме, хотя и нет гарантии, что даже эта задержка окажется достаточной для любого количества записей. Но получилось достаточно неплохо в одном частном случае. А именно - источник данных подчиненной формы - временная таблица. А вместо Requery - удаляю все записи из этой таблицы и вновь добавляю уже новые записи + Requery формы. Но без задержки все равно не обошлось, делаю задержку и после этого rs.Find Criteria. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 14:57:39 |
|
||
|
Переход на нужную запись в подчененной форме
|
|||
|---|---|---|---|
|
#18+
И еще одна тонкость. После Requery делал "перемотку" рекордсета вперед и назад Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 15:00:13 |
|
||
|
|

start [/forum/topic.php?fid=45&tid=1669067]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 338ms |

| 0 / 0 |
