powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как заставить форму при получении фокуса отдавать его предыдущему объекту?
8 сообщений из 8, страница 1 из 1
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562577
alex_pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как заставить форму при получении фокуса отдавать его предыдущему объекту, кто бы это ни был (табл, отчет, окно базы данных, что угодно)?
Одно решение у меня есть, но то, что оно основывается на SendKeys "^{F6}", стабильности работы не добавляет. Замену ищу именно "^{F6}". Все константы DoCmd.RunCommand перерыл, не нашел.

Вот пример кода. Фактически это форма, заменяющая рабочий стол MDI. Форма bkgrnd_2 имеет размеры 0х0 и фактически не видна, хотя по свойствам визибл. Открываю, чтоб фоновой форме было, кому фокус отдавать, когда ничего юзер не открыл и она не зациклилась.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Option Compare Database
Option Explicit
Dim unVis As Boolean

Private Sub Form_GotFocus()
Debug.Print "Form_GotFocus"
    DoCmd.restore
    Me.TimerInterval =  1 
End Sub

Private Sub Form_LostFocus()
    Debug.Print "lostfocus"
    Me.TimerInterval =  0 
End Sub

Private Sub Form_Open(Cancel As Integer)
Debug.Print "Form_Open"
    DoCmd.OpenForm "bkgrnd_2"
End Sub

Private Sub Form_Timer()
On Error GoTo ex_
    
Debug.Print "Form_Timer"
    
    If unVis Then
        Debug.Print "f6"
        SendKeys "^{F6}"
    Else
        unVis = True
    End If
ex_:
    Exit Sub
End Sub
...
Рейтинг: 0 / 0
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562579
alex_pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MS Access '97
...
Рейтинг: 0 / 0
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562585
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По логике - никак форма же не знает, кто ее создал.

Нужно передать в форму - ее родителя (это не сложно, но накладывает некоторые ограничения). Или сделать все из самого родителя (объекта открывающего форму)
...
Рейтинг: 0 / 0
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562592
alex_pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С знанием предыдущего объекта проблем нет - фишка как раз в том чтоб было по фигу, кто это. Нужно просто аналог ^{F6}, но без SendKeys, потому как ента функция любит намлок вырубать и вообще гадость непредсказуемая. ^{F6} - фишка стандартная, но непонятно чья - аксессная или апишная, не знаю с чего начать искать.
...
Рейтинг: 0 / 0
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562593
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я не понял, но по моему

The following example selects the form Customers in the Database window:

DoCmd.SelectObject acForm, "Customers", True
...
Рейтинг: 0 / 0
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562601
alex_pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vam911Нужно передать в форму - ее родителя (это не сложно, но накладывает некоторые ограничения). Или сделать все из самого родителя (объекта открывающего форму)

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

vam911Может я не понял, но по моему

The following example selects the form Customers in the Database window:

DoCmd.SelectObject acForm, "Customers", True

Когда я, как юзер нажимаю пальцами на ^f6, я не задумываюсь, какая форма была предыдущая, и как она называлась, цель в том чтоб фоновая форма тоже об этом не задумывалась, а то придется вставлять в готфокус каждой формы регистрацию.
...
Рейтинг: 0 / 0
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562609
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял. Были те же проблемы. Но много лет назад. Ршение не помню. Но точно знаю, что оно есть. ИЩИ!
...
Рейтинг: 0 / 0
Как заставить форму при получении фокуса отдавать его предыдущему объекту?
    #32562630
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно, чтобы каждая форма при потере фокуса заносила свое имя в глобальную переменную. И тогда эта переменная всегда будет знать, какая форма была предыдущей.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как заставить форму при получении фокуса отдавать его предыдущему объекту?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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