powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
7 сообщений из 7, страница 1 из 1
Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
    #32448054
dkny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Столкнулся с такой проблемой:

Есть главная форма, в ней есть подчиненная в табличном виде. Т.к. в подчиненной форме много записей, то последние записи уходят за пределы окна и для их просмотра приходится пользоваться скроллом (а в особых случаях и Ctrl+End). Так вот, чтобы этого избежать я сделал передачу фокуса подчиненной форме и переход в ней на последнюю запись:

Код: plaintext
1.
2.
Me.Форма_заказы.SetFocus
DoCmd.GoToRecord acActiveDataObject, , acLast


Но очень не хочется оставлять фокус на этой подчиненной форме, т.к. ее задача только показать их (кстати, если есть более разумный способ показать конец таблицы, то подскажите).

Для редактирования записей и последующего просмотра нужен фокус на главной форме. Метод Me.Parent.SetFocus почему-то не срабатывает, а других я не знаю :)

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

Так вот, как мне изменить поле "Учетный номер", увидеть низ подчиненной формы и снова иметь фокус в поле "Учетный номер"?

Буду рад, если покажете на пальцах


P.S. А как сделать условное форматирование в табличной форме, но выделять не ячейку, а сразу строку по определенному условию? Это нужно, чтобы сразу видеть какие заказы оплачены, а какие нет. Стандартное средство условного форматирования "кнопочками" Access этого не позволяет (что странно).
...
Рейтинг: 0 / 0
Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
    #32448194
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dim c as control
set c=me.activecontrol
Me.Форма_заказы.SetFocus
DoCmd.GoToRecord acActiveDataObject, , acLast
c.SetFocus
...
Рейтинг: 0 / 0
Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
    #32448458
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так не прокатит?

Me.Форма_заказы.form.recordset.movelast
...
Рейтинг: 0 / 0
Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
    #32448538
dkny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отчет о применении советов:

1. Метод Саныча выглядит более универсальным (идея понятна), но к желаемому результату не приводит. Почему?

Подробнее о том как я его проверял:

В код текущей записи главной формы вставляю это ноу-хау. Запускаю форму. Перехожу в поле примечание, нажимаю Ctrl+F и ищу с любой частью поля, скажем, "груз" (таких записей 42 штуки). Поиск выполняется до первой записи, показывает ее, но курсор (или фокус, кстати, это одно и то же? а то мало ли) остается на последней записи подчиненной формы (там список всех заказов). После этого мне приходится вручную возвращаться в поле "Примечание" главной формы и нажимать "Далее" и так 42 раза :)

2. Метод Алексея работает! :) Т.е. в подчиненной форме показывается нужный низ выборки и при этом фокус остается на текущем контроле. Единственное, что меня смущает, это то, что где-то в процессе поиска чего-уже-не-помню-что (ну, правда не помню :), ЛП или ХТ строго _не_ рекомендовали использовать для этого Recordset.

Может быть, кто-то объяснить разницу GoToRecord и Recordset.MoveLast? А заодно не подкинет идейку почему способ №1 не сработал?

P.S. Забыл сказать что у меня Access 2003.
...
Рейтинг: 0 / 0
Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
    #32448561
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после операций с рекордсетом нужно над флажками рисовать прозрачный контрол и на его клик делать

me.recordset("данныефлажка") = not me.recordset("данныефлажка")

иначе "придется сходить на микрософт"
...
Рейтинг: 0 / 0
Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
    #32448571
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
set c=me.activecontrol 
Me.Форма_заказы.form.SetFocus
Me.Форма_заказы.form.Controls( 1 ).SetFocus 
DoCmd.GoToRecord acActiveDataObject, , acLast 
c.SetFocus 
...
Рейтинг: 0 / 0
Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
    #32449658
dkny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Хоть я и не понял ничегошеньки про флажки и его контролы, и вообще, "чё творится то?!".

А второй (последний) вариант вызывает просто ужасное количество ошибок, в результате чего, я от него отказался. Сначала не понравилось, что при открытии формы фокус переходит на control "список". Потом ошибка выскочила при работе с полем со списком, ругнулся на то, что невозможен переход к указанной записи (выделение стояло на: Me.Bookmark = rs.Bookmark). И, наконец, записи в форме перестали листаться скроллом. Короче, полный бедлам

That's all folks...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как вернуть фокус из подчиненной формы предыдущему элементу главной формы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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