powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как повторно открыть форму на последней открывавшейся записи
9 сообщений из 9, страница 1 из 1
Как повторно открыть форму на последней открывавшейся записи
    #32777262
AlexRom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как повторно открыть форму на последней открывавшейся записи?
Причём для каждого пользовательского модуля эта запись должна быть своя.
(база разделена на собственно базу и пользовательские модули)
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32777303
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запоминать в таблице
и открывать фрму по условию
из этой таблицы
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32777513
AlexRom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это идея...
Очень логичная.
А как это сделать?
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32777586
kk@comson.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По событию выгрузка (если файл mdb):

Код: plaintext
Me![Ключевое_поле].DefaultValue = Me![Ключевое_поле]
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32777637
AlexRom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
файл mdb
Если только прописать в выгрузке, то ничего не работает
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32777710
Yura_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так:
Private Sub Form_Close()
Dim NumRec As Integer
NumRec = Form.CurrentRecord
End Sub
Затем запиши значение NumRec в к.л. таблицу Parameters!NumRec

Private Sub Form_Open(Cancel As Integer)
Dim db As Database
Dim rstParametrs As Recordset

Set db = CurrentDb()
Set rstParametrs = db.OpenRecordset("Parametrs")

DoCmd.GoToRecord acDataForm, "FormName", acGoTo, rstParametrs!NumRec

End Sub
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32777786
AlexRom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал таблицу Parametrs, в ней единственное (не ключевое) поле NumRec
Ругается

Private Sub Form_Close()
Dim NumRec As Integer
NumRec = Form.CurrentRecord
Me!Parametrs![NumRec].DefaultValue = Me![КодКлиента]
End Sub

Private Sub Form_Open(Cancel As Integer)
Dim db As Database
Dim rstParametrs As Recordset

Set db = CurrentDb()
Set rstParametrs = db.OpenRecordset("Parametrs")
DoCmd.GoToRecord acDataForm, "Клиенты", acGoTo, rstParametrs!NumRec
End Sub
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32778246
kk@comson.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторфайл mdb
Если только прописать в выгрузке, то ничего не работает

Извини, глупость, конечно, сморозил (даже две в одной строке).

Постараюсь исправиться.
Если режим не табличный, то можно использовать любое поле "Any_Field" для хранения текущей записи в свойстве Me![Any_Field].ColumnWidth. Неприятность в том, что ColumnWidth - целое, т. е. записей не должно быть больше 64 000. Если больше, надо использовать два поля.
Свойство ColumnWidth сохраняется при нажатии на изображение дискеты в меню. Вот работающий пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Form_Current()
    If Me.CurrentRecord <  64000  Then Me![Any_Field].ColumnWidth = Me.CurrentRecord -  32000 
End Sub

Private Sub Form_Activate()
    DoCmd.GoToRecord acDataForm, "Form_Name", acGoTo, Me![Any_Field].ColumnWidth +  32000 
End Sub

Этот пример работает, если между открытиями формы записи не удалялись. Иначе нужно использовать другой алгоритм поиска записи. Но идея хранить номер записи в самой форме работает!

P.S. Ес-но, при первом открытии формы после добавления кода возникнет ошибка "Невозможен переход к указанной записи", но только первый раз.
...
Рейтинг: 0 / 0
Как повторно открыть форму на последней открывавшейся записи
    #32778669
Yura_G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так, у меня работает:
Private Sub Form_Open(Cancel As Integer)
Dim db As Database
Dim rstParametrs As Recordset

Set db = CurrentDb()
Set rstParametrs = db.OpenRecordset("Parametrs")
DoCmd.GoToRecord acDataForm, "Клиенты", acGoTo, rstParametrs!NumRec
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim db As Database
Dim rstParametrs As Recordset
Dim NumRec As Integer

Set db = CurrentDb()
Set rstParametrs = db.OpenRecordset("Parametrs")


NumRec = Form.CurrentRecord
rstParametrs.Edit
rstParametrs![NumRec] = NumRec
rstParametrs.Update
End Sub
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как повторно открыть форму на последней открывавшейся записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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