Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

MS Access

Войти
Регистрация
Восстановить пароль
 
 
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
#1

Переход к последней записи в подчиненной форме - MS Access

17.02.2010, 17:19. Просмотров 9344. Ответов 20
Метки нет (Все метки)

В таблице можно сделать так, чтобы записи отображались по убыванию ключевого поля. А можно ли так сделать в одиночной форме? Смысл в том, чтобы "под рукой" всегда была запись, внесенная последней. Догадываюсь, что вместо этого имеет смысл поколдовать со счётчиком, но страшно
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2010, 17:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переход к последней записи в подчиненной форме (MS Access):

Переход к последней записи подчиненной табличной формы при активации главной формы - MS Access
Добрый день. Можно я в очередной раз спрошу глупость?)... Есть форма Заказы, на ней - две субформы: табличная форма "Список заказов"...

Переход по записям в форме только до последней записи и возвращение к нулевой - MS Access
нужно чтобы по кнопке "переход к следующей записи" переход останавливался на последней записи и не переходил к "нулевой" записи. "Нулевая",...

Запрет на создание записи в подчиненной форме при отсутствии значения в поле главной формы( или в этой же подчиненной форме) Аксесс 2003 - MS Access
Доброго времени суток ! Помогите , пожалуйста, решить проблему! шаг 1. В форме "frmТОиР_2" при вводе в "ПОЛЕ 28" номера изделия...

Переход в подчиненной форме - MS Access
как после выбора значений (в поле со списком "ak" ) перейти на подчиненную форму na "data" Чтобы курсор переместился в ньом в...

Переход на новую запись в подчиненной форме - MS Access
Вопрос вытек из моего предыдущего вопроса, но поскольку разные темы - разные вопросы. Есть форма и подчиненная форма. Обе имеют...

Переход по записям из главной формы в не подчиненной форме - MS Access
Переход по записям из главной формы в не подчиненной форме как после выбора значений (в поле со списком "ak" ) из формы 2 перейти на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
БурундукЪ
9541 / 2538 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
17.02.2010, 17:54 #2
по открытию формы
Visual Basic
1
DoCmd.GoToRecord , , acLast
1
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
17.02.2010, 19:22  [ТС] #3
Спасибо! Правда, это не работает в подчиненной форме. Нашла вот что:

Недостатки 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, когда не указывается имя объекта.



но не поняла, откуда эту процедуру нужно вызывать...
1
БурундукЪ
9541 / 2538 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
17.02.2010, 19:35 #4
Цитата Сообщение от Musette Посмотреть сообщение
но не поняла, откуда эту процедуру нужно вызывать...
а ты ее можешь вообще в модулях записать, ведь ты передаешь в нее любую форму, а вызывать ее в подчиненной (при открытии)

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

Не по теме:

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

0
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
17.02.2010, 19:56  [ТС] #5
Цитата Сообщение от CyberБурундукЪ
а вызывать ее в подчиненной (при открытии)
так вот и не могу сообразить - в каком событии её вызывать? подчиненная форма не открывается - значит, не в открытии... в "загрузке" тоже не работает.

Цитата Сообщение от CyberБурундукЪ
приятно общаться с человеком, который хочет учиться
)) спасибо, хотеть-то хочу, но получается пока не очень...
0
БурундукЪ
9541 / 2538 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
17.02.2010, 20:00 #6
Цитата Сообщение от Musette Посмотреть сообщение
подчиненная форма не открывается - значит, не в открытии
ошибка ваша как раз открывается, вместе с главной, причем даж раньше главной

Добавлено через 24 секунды
т.е. в открытии и вызывай
0
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
17.02.2010, 20:06  [ТС] #7
не, я проверяла, не работает. то есть если её отдельно открывать, как форму - работает, а из главной - нет.
0
БурундукЪ
9541 / 2538 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
17.02.2010, 20:27 #8
Musette, попробуй еще так.
у подчиненной формы, как обьекта главной формы есть 2 события Вход и Выход
(Enter и Exit)
0
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
17.02.2010, 20:54  [ТС] #9
увы-увы... ещё и при переходе по записям подчиненной формы выдаёт ошибку.
0
БурундукЪ
9541 / 2538 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
17.02.2010, 21:00 #10
Musette, слушай, все можно сделать гораздо проще
ведь данные в подчиненной форме можно сортировать

Добавлено через 1 минуту
и если есть идентификатор, то можно сортировать по нему
0
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
17.02.2010, 21:13  [ТС] #11
в смысле, написать id_... desc в поле "порядок сортировки"? попробовала, не работает
0
БурундукЪ
9541 / 2538 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
17.02.2010, 21:17 #12
Musette, скинь еще раз свою базу в формате А2000
и имя формы
седня или завтра гляну
1
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
17.02.2010, 21:33  [ТС] #13
спасибо! скину завтра, т.к. в моей "анонимной" базе эту процедуру вообще не удалось запустить - ругается на "rst As DAO.Recordset", хотя в рабочей базе всё нормально...
0
БурундукЪ
9541 / 2538 / 66
Регистрация: 17.02.2009
Сообщений: 10,364
17.02.2010, 21:39 #14
Цитата Сообщение от Musette Посмотреть сообщение
ругается на "rst As DAO.Recordset"
а там надо в референсах подключить библиотеку
References
0
Musette
8 / 8 / 1
Регистрация: 30.01.2010
Сообщений: 54
18.02.2010, 00:08  [ТС] #15
Ага, спасибочки, подключила.
Поняла, в чём была проблема Если прописать вызов процедуры в открытии и/или загрузке формы, то сортировка будет выполняться только в первично отфильтрованных записях подчиненной формы. При дальнейшем переходе по записям главной формы процедура больше не действует.
У меня в рабочей базе главная форма была отсортирована по убыванию через acLast, поэтому я сразу перемещалась на последнюю запись формы, а процедура сортировала только подчинённые данные первой записи, поэтому я и результата не видела...
Куда же прописать вызов, чтобы сортировалась каждая подформа?
0
Вложения
Тип файла: rar base.rar (43.0 Кб, 72 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2010, 00:08
Привет! Вот еще темы с ответами:

Поиск в основной форме по записи в подчиненной форме - MS Access
Не могли бы подсказать как из подчиненной формы можно перейти в основую форму, на определенную запись. Т.е. в подчиненной форме есть...

Новые записи в подчиненной форме - MS Access
Добрый день!мне нужна ваша помощь! мне надо чтоб можно было добавлять данные в подчиненную форму, как мне это реализовать? ...

Повторяющие записи в подчиненной форме - MS Access
Приветствую жителей данного форума. Прошу принять в свою компанию. Помогите советом. Есть форма с подчиненной формой. Подчиненная форма...

Программное добавление записи в подчиненной форме... - MS Access
Есть подчиненная форма, в которой заполняются поля. При нажатии опр.клавиши на клаве необходимо, чтобы в подчиненной форме курсор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.02.2010, 00:08
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru