Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум Базы данных > Форум MS Access

Ответ Создать новую тему
 
Поиск в этой теме
Старый 17.02.2010, 17:19   #1
Musette
Форумчанин
 
Регистрация: 30.01.2010
Сообщений: 66
Репутация: 8 (8)
По умолчанию Переход к последней записи в подчиненной форме

В таблице можно сделать так, чтобы записи отображались по убыванию ключевого поля. А можно ли так сделать в одиночной форме? Смысл в том, чтобы "под рукой" всегда была запись, внесенная последней. Догадываюсь, что вместо этого имеет смысл поколдовать со счётчиком, но страшно
Musette вне форума
Другие темы раздела Форум разработчиков MS Access. Вопросы использования СУБД MS Access.
автозаполнение полей MS Access
Никто не подскажет, можно ли в Access сделать так чтобы, на форме могли видеть название продукта, а при его изменении менялся соответствующий код.. автозаполнение полей
MS Access хитрый кнопка2 Как открыть нужную папку, где отображались бы только файлы *.dot
Опять бурундук выручаешь!:good: а как папку открыть? чтоб там только шаблоны отображались? последний вопрос в этом месяце, обещаю О_о. хитрый кнопка2 Как открыть нужную папку, где отображались бы только файлы *.dot
Старый 17.02.2010, 17:54   #2
БурундукЪ
Форумчанин
 
Аватар для БурундукЪ
 
Регистрация: 17.02.2009
Сообщений: 10,551
Репутация: 7952 (2385)
По умолчанию re: Переход к последней записи в подчиненной форме

по открытию формы
Код Visual Basic
1
DoCmd.GoToRecord , , acLast
БурундукЪ вне форума
Старый 17.02.2010, 19:22  [ТС]   #3
Musette
Форумчанин
 
Регистрация: 30.01.2010
Сообщений: 66
Репутация: 8 (8)
По умолчанию re: Переход к последней записи в подчиненной форме

Спасибо! Правда, это не работает в подчиненной форме. Нашла вот что:

Недостатки DoCmd.GoToRecord и достоинства CodeContextObject
Пара камней в огород DoCmd
Как-то мне понадобилось перейти к последней записи в подчиненной форме. Перейти к последней записи можно разными способами, простейший – это вот эта команда: DoCmd.GoToRecord , , acLast. Вот с подчиненненными формами есть нюанс – нужно вызывать ее в обработчике события или методе подчиненной формы. В моем случае события не подходили, метод было реализовывать влом и очень хотелось реализовать это на главной форме.

Поэтому пришлось написать свою функцию. Благодаря тому, что функция принимает ссылку на форму, а не имя, то можно ее использовать для любой формы, подчиненной, созданной при помощи DoCmd.OpenForm или оператора New.

Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Public Sub CM_FormGoToLastRecord(Optional ByRef frm As Form = Nothing)
' перейти на последнюю запись
' frm можно не передавать, в этом случае она будет получена при помощи CodeContextObject
On Error GoTo Err_
 
    If frm Is Nothing Then
        Set frm = CodeContextObject
    End If
 
    If frm Is Nothing Then Exit Sub
 
    Dim rst As DAO.Recordset
 
    Set rst = frm.RecordsetClone
    If Not rst.EOF Then rst.MoveLast
    frm.Bookmark = rst.Bookmark
 
Exit_:
    Exit Sub
Err_:
    mc_Log.MC_LogErr ("CM_FormGoToLastRecord()")
    Resume Exit_:
End Sub
mc_Log.MC_LogErr ("FormGoToLastRecord()") - функция, которая логирует ошибку в текстовом файле.

CodeContextObject
В процедуре CM_FormGoToLastRecord() используется такая штука, как CodeContextObject, которое в справке называют свойством. Это свойство позволяет получить ссылку на объект, в рамках которого выполняется данный код. Если вызвать процедуру CM_FormGoToLastRecord() в событии подчиненной формы, то CodeContextObject выдаст ссылку на подчиненную форму. Этот же способ использует DoCmd.GoToRecord, когда не указывается имя объекта.



но не поняла, откуда эту процедуру нужно вызывать...

Последний раз редактировалось БурундукЪ; 17.02.2010 в 19:31. Причина: перене
Musette вне форума
Старый 17.02.2010, 19:35   #4
БурундукЪ
Форумчанин
 
Аватар для БурундукЪ
 
Регистрация: 17.02.2009
Сообщений: 10,551
Репутация: 7952 (2385)
По умолчанию re: Переход к последней записи в подчиненной форме

Цитата Сообщение от Musette Посмотреть сообщение
но не поняла, откуда эту процедуру нужно вызывать...
а ты ее можешь вообще в модулях записать, ведь ты передаешь в нее любую форму, а вызывать ее в подчиненной (при открытии)

Добавлено через 38 секунд

Не по теме:
приятно общаться с человеком, который хочет учиться
БурундукЪ вне форума
Старый 17.02.2010, 19:56  [ТС]   #5
Musette
Форумчанин
 
Регистрация: 30.01.2010
Сообщений: 66
Репутация: 8 (8)
По умолчанию re: Переход к последней записи в подчиненной форме

Цитата Сообщение от CyberБурундукЪ
а вызывать ее в подчиненной (при открытии)
так вот и не могу сообразить - в каком событии её вызывать? подчиненная форма не открывается - значит, не в открытии... в "загрузке" тоже не работает.

Цитата Сообщение от CyberБурундукЪ
приятно общаться с человеком, который хочет учиться
)) спасибо, хотеть-то хочу, но получается пока не очень...
Musette вне форума
Старый 17.02.2010, 20:00   #6
БурундукЪ
Форумчанин
 
Аватар для БурундукЪ
 
Регистрация: 17.02.2009
Сообщений: 10,551
Репутация: 7952 (2385)
По умолчанию re: Переход к последней записи в подчиненной форме

Цитата Сообщение от Musette Посмотреть сообщение
подчиненная форма не открывается - значит, не в открытии
ошибка ваша как раз открывается, вместе с главной, причем даж раньше главной

Добавлено через 24 секунды
т.е. в открытии и вызывай
БурундукЪ вне форума
Старый 17.02.2010, 20:06  [ТС]   #7
Musette
Форумчанин
 
Регистрация: 30.01.2010
Сообщений: 66
Репутация: 8 (8)
По умолчанию re: Переход к последней записи в подчиненной форме

не, я проверяла, не работает. то есть если её отдельно открывать, как форму - работает, а из главной - нет.
Musette вне форума
Старый 17.02.2010, 20:27   #8
БурундукЪ
Форумчанин
 
Аватар для БурундукЪ
 
Регистрация: 17.02.2009
Сообщений: 10,551
Репутация: 7952 (2385)
По умолчанию re: Переход к последней записи в подчиненной форме

Musette, попробуй еще так.
у подчиненной формы, как обьекта главной формы есть 2 события Вход и Выход
(Enter и Exit)
БурундукЪ вне форума
Старый 17.02.2010, 20:54  [ТС]   #9
Musette
Форумчанин
 
Регистрация: 30.01.2010
Сообщений: 66
Репутация: 8 (8)
По умолчанию re: Переход к последней записи в подчиненной форме

увы-увы... ещё и при переходе по записям подчиненной формы выдаёт ошибку.
Musette вне форума
Старый 17.02.2010, 21:00
Yandex
Объявления
Старый 17.02.2010, 21:00   #10
БурундукЪ
Форумчанин
 
Аватар для БурундукЪ
 
Регистрация: 17.02.2009
Сообщений: 10,551
Репутация: 7952 (2385)
По умолчанию re: Переход к последней записи в подчиненной форме

Musette, слушай, все можно сделать гораздо проще
ведь данные в подчиненной форме можно сортировать

Добавлено через 1 минуту
и если есть идентификатор, то можно сортировать по нему
БурундукЪ вне форума
Старый 17.02.2010, 21:00
РСЯ
Объявления
После регистрации реклама в сообщениях будет скрыта.
Ответ Создать новую тему

Похожие темы
Тема Автор
MS Access повторяющие записи в подчиненной форме
Приветствую жителей данного форума. Прошу принять в свою компанию. Помогите советом. Есть форма с подчиненной формой. Подчиненная форма представляет собой таблицу, где в первой колонке можно выбрать значение из списка (список создан как ссылка на отдельную таблицу), вторая колонка - цифровое...
id-muse
MS Access Создание новой записи в подчиненной форме
Приветствую Вас программисты. Помогите реализовать такое дело: Имеется форма "Прием сотрудников" в данной форме имеется подчиненная "Приказы". Приказы имеют следующие поля: Код(Счетчик); №п-п(Текстовое); Дата(Дата); Содержание приказа(Текстовый). Данные в поле "№п-п" следующего типа: *-л(где...
serega1576
MS Access Поиск в основной форме по записи в подчиненной форме
Не могли бы подсказать как из подчиненной формы можно перейти в основую форму, на определенную запись. Т.е. в подчиненной форме есть поля...необходимо, чтобы нажав на определенную фамилию осуществлялся переход в основную форму, на запись с этой фамилией. Думала связать через код ученного, который...
НеГоДяЙкА
MS Access Программное добавление записи в подчиненной форме...
Есть подчиненная форма, в которой заполняются поля. При нажатии опр.клавиши на клаве необходимо, чтобы в подчиненной форме курсор устанавливался на новую запись в ней. DoCmd.GotoRec ,,acNewRec - выдает ошибку, что не может перейти на указанную запись. Всем спасибо за советы и жду их с нетерпением.
anni
Visual Basic Переход к последней записи базы.
Как в обычном объека Data перейти к последней записи базы не стрелкой на самой DATA
rzd
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Текущее время: 17:50. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2013, vBulletin Solutions, Inc.