Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как повторно открыть форму на последней открывавшейся записи / 9 сообщений из 9, страница 1 из 1
11.11.2004, 12:28:11
    #32777262
AlexRom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как повторно открыть форму на последней открывавшейся записи
Как повторно открыть форму на последней открывавшейся записи?
Причём для каждого пользовательского модуля эта запись должна быть своя.
(база разделена на собственно базу и пользовательские модули)
...
Рейтинг: 0 / 0
11.11.2004, 12:42:03
    #32777303
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как повторно открыть форму на последней открывавшейся записи
запоминать в таблице
и открывать фрму по условию
из этой таблицы
...
Рейтинг: 0 / 0
11.11.2004, 13:58:18
    #32777513
AlexRom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как повторно открыть форму на последней открывавшейся записи
Это идея...
Очень логичная.
А как это сделать?
...
Рейтинг: 0 / 0
11.11.2004, 14:20:28
    #32777586
kk@comson.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как повторно открыть форму на последней открывавшейся записи
По событию выгрузка (если файл mdb):

Код: plaintext
Me![Ключевое_поле].DefaultValue = Me![Ключевое_поле]
...
Рейтинг: 0 / 0
11.11.2004, 14:41:54
    #32777637
AlexRom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как повторно открыть форму на последней открывавшейся записи
файл mdb
Если только прописать в выгрузке, то ничего не работает
...
Рейтинг: 0 / 0
11.11.2004, 15:10:32
    #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
11.11.2004, 15:34:22
    #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
11.11.2004, 18:16:18
    #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
12.11.2004, 07:21:00
    #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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как повторно открыть форму на последней открывавшейся записи / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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