Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SetFocus для формы (не всплывающее окно) / 18 сообщений из 18, страница 1 из 1
17.05.2017, 21:50
    #39455032
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Господа, есть вопрос.

Перевод фокуса на форму (всплывающую):
Forms!MyForm.SetFocus

Этот же код не делает активной форму если он НЕ всплывающая, как вкладка.

Как можно перевести фокус на нее, при том, что таких форм открыто несколько.
...
Рейтинг: 0 / 0
18.05.2017, 01:29
    #39455062
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Игортан,
Access какой версии? Примерчик бы.
В 2003-м такого не наблюдаю.
...
Рейтинг: 0 / 0
18.05.2017, 10:45
    #39455199
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
guest_rusimport,

прошу прощения, акс 2007
режим работы - на вкладках.
MDI интерфейс, вроде так называется по умному.
...
Рейтинг: 0 / 0
18.05.2017, 12:24
    #39455325
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Игортан,

Господа.
Или совсем ерунду спрашиваю, или нету такого решения?
В чем подвох?
...
Рейтинг: 0 / 0
18.05.2017, 12:38
    #39455336
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Игортан, тебе нужно переключится на другую вкладку (форму)?
Только сейчас протестировал код
Код: vbnet
1.
2.
3.
Private Sub Кнопка0_Click()
    If CurrentProject.AllForms("Form1").IsLoaded Then Forms("Form1").SetFocus: MsgBox Screen.ActiveForm.Name
End Sub

прекрасно переключает на требуемую форму
Access 2007, 2010
...
Рейтинг: 0 / 0
18.05.2017, 13:03
    #39455357
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Панург,

Ситуация у меня:
Со старта запускается последовательно 4 формы (так человек захотел)
после запуска всех 4х форм фокус нужно перевести на первую.
Код: vbnet
1.
2.
3.
4.
5.
        DoCmd.OpenForm "Account List", acNormal, "", "", , acNormal
        DoCmd.OpenForm "Contact List", acNormal, "", "", , acNormal
        DoCmd.OpenForm "Activity List", acNormal, "", "", , acNormal
        DoCmd.OpenForm "Opportunity List", acNormal, "", "", , acNormal
        If CurrentProject.AllForms("Account List").IsLoaded Then Forms("Account List").SetFocus: MsgBox Screen.ActiveForm.Name


Сейчас попробовал ваш код и при старте и из другой формы.
Фокус не перешел...Сообщение получаю.
...
Рейтинг: 0 / 0
18.05.2017, 16:40
    #39455530
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
ИгортанСообщение получаю.Поздравляю!
ИгортанФокус не перешел. Факир был пьян и фокус не удался. © А как это выглядит?
...
Рейтинг: 0 / 0
18.05.2017, 19:44
    #39455642
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Панург,

Да никак))))
Просто кликаешь кнопку.
Нужная форма НЕ становится активной. И получаю сообщение, по коду)))
Код: plaintext
...
Рейтинг: 0 / 0
19.05.2017, 03:58
    #39455759
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Игортан, ну что сказать? Сделай пример с подобной проблемой, т.к. у меня при использовании аналогичного кода (скопировал твой, но формы мои) отрабатывает и делает активной первую запущенную форму.
...
Рейтинг: 0 / 0
19.05.2017, 10:29
    #39455889
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Панург,

Выбросил в новую бд, что бы сюда положить.
Пришла в голову мысль.
А не виноваты ли в этом разделенные формы...
Т.е. у меня все эти 4 формы - разделенные.
Попробовал сделать их одиночными и ленточными и о чудо!
Все работает.
Фича или баг, не знаю.

Знаю, что есть нюансы при работе с контролами разделенных форм.
Может и здесь что по хитрому делается...
Может кто знает?
Не охота весь проект переделывать с разделенных на формы с подчиненными....
В то время тупо решил количество форм уменьшить, что бы без подчиненных...
...
Рейтинг: 0 / 0
19.05.2017, 19:11
    #39456446
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Бред какой.

Все великое - просто.
Код: sql
1.
2.
3.
4.
5.
6.
DoCmd.OpenForm "Account List", acNormal, "", "", , acNormal
DoCmd.OpenForm "Contact List", acNormal, "", "", , acNormal
DoCmd.OpenForm "Activity List", acNormal, "", "", , acNormal
DoCmd.OpenForm "Opportunity List", acNormal, "", "", , acNormal

DoCmd.OpenForm "Account List", acNormal, "", "", , acNormal
...
Рейтинг: 0 / 0
20.05.2017, 20:34
    #39456685
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
aleks2,

Да, этот способ попробовал первым.
Тогда получается форма "Account List" активной, но четвертой вкладкой.
Будет
1. Contact List
2. Activity List
3. Opportunity List
4. Account List (активна)

А нужно
1. Account List (активна)
2. Contact List
3. Activity List
4. Opportunity List

Сам несколько удивлен различием реакции разделенной формы и обычной на SetFocus.
Может кто проверит это различие в поведении у себя?
У меня просто везде стоит оффис из одного образа. И реакция одинаковая.
Может кривой какой...
Если у других такое поведение будет аналогичным, значит дело не в моем аксе.
Что бы не городить огород, приложу архивчик на тест.
Проверить активацию форм, когда они разделенные и когда обычные(одиночные, ленточные)
...
Рейтинг: 0 / 0
20.05.2017, 21:26
    #39456702
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Игортан,

что бы было легче - закинул 2 типа форм
открываются по своим кнопкам
Посмотрите плиз
разделенные и одиночные - одинаково передают фокус?
...
Рейтинг: 0 / 0
22.05.2017, 07:03
    #39457030
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
ИгортанДа, этот способ попробовал первым.
Тогда получается форма "Account List" активной, но четвертой вкладкой.


В Access 2010 - никакой "перестановки вкладок" не происходит.
...
Рейтинг: 0 / 0
22.05.2017, 08:32
    #39457048
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Игортан,
...
Рейтинг: 0 / 0
23.05.2017, 18:18
    #39458373
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Панург, Спасибо!
Через API решили вопрос. Даже не подумал в ту сторону, правда я с ними слаб.

П.С. чуток пропал...только до компа добрался.
...
Рейтинг: 0 / 0
23.05.2017, 18:31
    #39458392
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
aleks2В Access 2010 - никакой "перестановки вкладок" не происходит.

Начал вам отвечать....ну я и рукож..п.
Код: vbnet
1.
2.
3.
4.
5.
6.
DoCmd.OpenForm "Account List", acNormal, "", "", , acNormal
DoCmd.OpenForm "Contact List", acNormal, "", "", , acNormal
DoCmd.OpenForm "Activity List", acNormal, "", "", , acNormal
DoCmd.OpenForm "Opportunity List", acNormal, "", "", , acNormal

DoCmd.OpenForm "Account List", acNormal, "", "", , acNormal


Я умудрился у себя в коде перед вторым открытием "Account List" закрывать ее.
Как я не обратил на это внимание???!!!

Единственный минус у этого способа - если данные на форме тяжелые, комп будет мал думать.
Хотя... это я обойду.
...
Рейтинг: 0 / 0
24.05.2017, 06:41
    #39458518
aleks2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SetFocus для формы (не всплывающее окно)
Игортан
Единственный минус у этого способа - если данные на форме тяжелые, комп будет мал думать.
Хотя... это я обойду.

Никаких раздумий не будет.
Повторное открытие формы переносит фокус на "уже открытую".
Запрос не выполняется.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / SetFocus для формы (не всплывающее окно) / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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