Консультация № 137089
16.05.2008, 15:55
0.00 руб.
0 1 1
Здравствуйте!
Подскажите как на VBA в Access обновить список (длинная таблица) так, чтобы он не прокручивался в начало, а оставался как есть в том-же положиении (т.к. длинный, трудно искать нужную запись)

Обновляю так:
Список.Requery

Но при этом список прокручивается или вверх до конца, или на какую-нибудь совсем другую строку, а не та ту, которая была выбрана до этого (можно выделить только одну строку).
Подскажите что происходит, как сделать нормально?

Обсуждение

Неизвестный
16.05.2008, 17:47
общий
это ответ
Здравствуйте, Upgrader!
При обновлении recordset-а курсор обычно возвращается в первую позицию, поэтому Вам нужно сначала запомнить на какой строке был курсор, а после обновления вернуть его на прежнее место. Это можно сделать так:

Function Refreshh1()
temp = recordset.Bookmark
recordset.Requery
recordset.Bookmark = temp
End Function

Недостаток этой функции в том, что если добавятся записи выше этой, то и курсор переместится вверх на количество таких строк. Но обычно записи добавляются в конец, если в запросе не указана сортировка по какому-нибудь полю.

Удачи!

Форма ответа