Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > Форум Форум программистов > Форум Базы данных > Форум MS Access
Восстановить пароль Регистрация

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

В таблице можно сделать так, чтобы записи отображались по убыванию ключевого поля. А можно ли так сделать в одиночной форме? Смысл в том, чтобы "под рукой" всегда была запись, внесенная последней. Догадываюсь, что вместо этого имеет смысл поколдовать со счётчиком, но страшно
17.02.2010, 17:19
AdAgent
Объявления
17.02.2010, 17:54   #2
БурундукЪ
Форумчанин
Регистрация: 17.02.2009
Сообщений: 10,365
Репутация: 9054 (2468)
Лучшие ответы: 24
Переход к последней записи в подчиненной форме

по открытию формы
Код Visual Basic
1
DoCmd.GoToRecord , , acLast
Другие темы раздела
автозаполнение полей MS Access
Никто не подскажет, можно ли в Access сделать так чтобы, на форме могли видеть название продукта, а при его изменении менялся соответствующий код.
MS Access хитрый кнопка2 Как открыть нужную папку, где отображались бы только файлы *.dot
Опять бурундук выручаешь!:good: а как папку открыть? чтоб там только шаблоны отображались? последний вопрос в этом месяце, обещаю О_о
17.02.2010, 19:22  [ТС]   #3
Musette
Форумчанин
Регистрация: 30.01.2010
Сообщений: 54
Репутация: 8 (8)
Лучшие ответы: 1
Переход к последней записи в подчиненной форме

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

Недостатки 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:35   #4
БурундукЪ
Форумчанин
Регистрация: 17.02.2009
Сообщений: 10,365
Репутация: 9054 (2468)
Лучшие ответы: 24
Переход к последней записи в подчиненной форме

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

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

Не по теме:

приятно общаться с человеком, который хочет учиться

17.02.2010, 19:35
AdAgent
Объявления
17.02.2010, 19:56  [ТС]   #5
Musette
Форумчанин
Регистрация: 30.01.2010
Сообщений: 54
Репутация: 8 (8)
Лучшие ответы: 1
Переход к последней записи в подчиненной форме

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

Цитата Сообщение от CyberБурундукЪ
приятно общаться с человеком, который хочет учиться
)) спасибо, хотеть-то хочу, но получается пока не очень...
17.02.2010, 20:00   #6
БурундукЪ
Форумчанин
Регистрация: 17.02.2009
Сообщений: 10,365
Репутация: 9054 (2468)
Лучшие ответы: 24
Переход к последней записи в подчиненной форме

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

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

не, я проверяла, не работает. то есть если её отдельно открывать, как форму - работает, а из главной - нет.
17.02.2010, 20:27   #8
БурундукЪ
Форумчанин
Регистрация: 17.02.2009
Сообщений: 10,365
Репутация: 9054 (2468)
Лучшие ответы: 24
Переход к последней записи в подчиненной форме

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

увы-увы... ещё и при переходе по записям подчиненной формы выдаёт ошибку.
17.02.2010, 21:00   #10
БурундукЪ
Форумчанин
Регистрация: 17.02.2009
Сообщений: 10,365
Репутация: 9054 (2468)
Лучшие ответы: 24
Переход к последней записи в подчиненной форме / MS Access

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

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

Похожие темы
Тема Раздел Автор Дата
MS Access: Переход по записям из главной формы в не подчиненной форме
Переход по записям из главной формы в не подчиненной форме как после выбора значений (в поле со списком "ak" ) из формы 2 перейти на форму 4 на на поле "4" Чтобы курсор переместился в ньом в (форму 4 на на поле "4")
MS Access rvafexa 21.04.2013 15:26
MS Access: Переход в подчиненной форме
как после выбора значений (в поле со списком "ak" ) перейти на подчиненную форму na "data" Чтобы курсор переместился в ньом в "data"
MS Access rvafexa 21.04.2013 09:28
MS Access: Переход на новую запись в подчиненной форме
Вопрос вытек из моего предыдущего вопроса, но поскольку разные темы - разные вопросы. Есть форма и подчиненная форма. Обе имеют табличный вид. Я обновляю подчинённую форму (что бы обновить поле "значение по умолчанию" одного из полей). Форма обновляется, "значение по умолчанию" становится...
MS Access Ruido 07.04.2013 08:13
MS Access: Запрет на создание записи в подчиненной форме при отсутствии значения в поле главной формы( или в этой же подчиненной форме) Аксесс 2003
Доброго времени суток ! Помогите , пожалуйста, решить проблему! шаг 1. В форме "frmТОиР_2" при вводе в "ПОЛЕ 28" номера изделия ((прибора): можно на выбор 5434;9274;6973 или любого иного из "tblИдентификатор_Изделия ") и переходе с этого поля на любое другое срабатывает запрос...
MS Access ankan 27.03.2013 11:08
MS Access: Поиск в основной форме по записи в подчиненной форме
Не могли бы подсказать как из подчиненной формы можно перейти в основую форму, на определенную запись. Т.е. в подчиненной форме есть поля...необходимо, чтобы нажав на определенную фамилию осуществлялся переход в основную форму, на запись с этой фамилией. Думала связать через код ученного, который...
MS Access НеГоДяЙкА 28.02.2011 02:04
Опции темы

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

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