Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выделить заданную строчку в форме с помощью VBA? / 8 сообщений из 8, страница 1 из 1
18.02.2016, 12:31
    #39173986
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
Добрый день! Есть разделенная форма с кнопкой, которая обновляет (Requery) источник формы. После обновления исчезает выделение записи. Как мне сохранить позицию записи, которая была выделена до обновления. И как выделить заданную строчку после обновления?
Я как понял
Код: vbnet
1.
Me.CurrentRecord

- показывает номер строки, которая выделена
...
Рейтинг: 0 / 0
18.02.2016, 13:19
    #39174064
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
Один из способов такой: сохраняешь в переменную ID записи на которой стоит маркер до обновления. После обновления надо найти этот ID в клоне рекордсета. По идее, этого долдно хваоить. Но, если недостаточно, тогда присвоить букмарк клона букмарку формы. Чтобы избежать мигания формы при этом, на время этой аперации отключить эхо и painting формы (не забыть их включить при выходе из процедуры! через обработчик ошибок). Да, еще, после обновления есть шанс, что сохраненного ID в рекордсете уже нет. Так что, нужно обязательно проверить результат поиска в клоне
...
Рейтинг: 0 / 0
18.02.2016, 13:42
    #39174117
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
Rivkin Dmitry,

А могли бы привести код примера?
...
Рейтинг: 0 / 0
18.02.2016, 14:27
    #39174226
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
Нашел следующий способ, через bookmark.
Код: vbnet
1.
2.
3.
4.
5.
        Dim varBookmark As Variant
        varBookmark = Me.Bookmark

        Me.Requery
        Me.Bookmark = varBookmark



Единственное, что меня еще не устраивает, что после я хочу, чтобы запись была, вся выделенная, как на 1 рис. (до обновления),


а сейчас после обновления как на рис 2
...
Рейтинг: 0 / 0
18.02.2016, 14:42
    #39174259
Rivkin Dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
Нет, это неверно. Букмарки рекордсета после обновления изменятся
Как то так (код пишу без проверки, сорри)Ж

Dim id as LongInt
id = Me.id
Me.Requery
Me.Recordset.Find "id = " & id
If not Me.Recordset.NoMutch Then
Me.Bookmark = Me.Recordset.BookMark
End If
...
Рейтинг: 0 / 0
18.02.2016, 15:55
    #39174427
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
Rivkin Dmitry,

Когда у меня Источник не изменяется (т.е. сколько вначале было записей до обновления, столько и осталось, очередность не менялась), в моём случае я обновляю только значение в поле одной записи. То bookmark - работает
...
Рейтинг: 0 / 0
18.02.2016, 15:56
    #39174430
msleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
Вопрос остался, как выделить запись, как на рисунке?
...
Рейтинг: 0 / 0
18.02.2016, 16:15
    #39174465
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выделить заданную строчку в форме с помощью VBA?
После того как правильная запись найдена, пишете
Код: vbnet
1.
docmd.runcommand accmdselectrecord
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как выделить заданную строчку в форме с помощью VBA? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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