powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / и имя формы и имя Controla формы, потерявшего фокус?
20 сообщений из 20, страница 1 из 1
и имя формы и имя Controla формы, потерявшего фокус?
    #32138713
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может у кого "на слуху"? Где-то было, а искать некогда.
Щелкаю кнопку - открываю форму. В форме выбираю запись и хочу чтобы значение из записи перепорхнуло именно в то поле, которое было в фокусе перед нажатием кнопки??? (Форма подчиненная).
Всем заранее спасибо!!!
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138771
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как всегда все просто. Если кому надо
Код: plaintext
1.
Screen.PreviousControl.SetFocus
Forms(ActiveControl.Parent.name).Controls(ActiveControl.name) =  "допустимое значение" 
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138779
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кнопка на подчиненной форме или основной?
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138789
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хха!! Наверное, рано радуюсь. В том то и дело, что экспериментировал на основной форме. Теперь, конечно, надо думать как добраться до подчиненной, если кнопка на основной.
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138797
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А чего добираться до подчиненной? Если f - главная, а sbf на ней SubForm control, то f!sbf.Form
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138816
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кнопка на главной, то на нажатие кнопки открывающей другую форму надо запомнить поле на субформе
set ctl= Me.subform.Form.ActiveControl.Name
А потом этому полю задать значение.
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138825
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините Name зря написал, если ctl - control
set ctl= Me.subform.Form.ActiveControl
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138853
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При нажатии кнопки на главной subform потеряет фокус. А будет ли в момент нажатия этот Me.subform.Form.ActiveControl активным?
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32138894
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жаль, конечно, что нельзя прямо в ActiveControl вогнать данные, не указав имена форм. У меня несколько форм с различным уровнем вложения подчиненных, которые все обращаются к одному источнику - той самой открывающейся форме. Вот и думаю получится универсальная функция вставки выбранного значения или это мечты о панацее и философском камне?
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139245
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>При нажатии кнопки на главной subform потеряет фокус.
>А будет ли в момент нажатия этот Me.subform.Form.ActiveControl активным?
А что проверить трудно? Я проверил. Да будет активным но не для объекта Screen а для формы.
>Жаль, конечно, что нельзя прямо в ActiveControl вогнать данные, не указав имена >форм.
В какой такой ActiveControl будете вгонять если вы несколько раз меняете фокус?
То что я предложил как раз позволяет унифицировать процедуру.
Где фигурирует имя формы в моем примере? Есть имя элемента - субформы, а я обычно делаю его одинаковым для всех форм (если субформа одна).
Да и имя субформы легко получить, так как при нажатии кнопки свойство объекта Screen PreviousControl как раз даст имя субформы.
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139610
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Serge Gavrilov
> А что проверить трудно? Я проверил.
Я тоже. Сразу. Ну работает. (Не занимает теоретический вопрос - активный контрол, потерявший фокус? Мне лично интересно в чем дело.)

> В какой такой ActiveControl будете вгонять если вы несколько раз меняете фокус?

Кто Вам такое сказал? Не собираюсь я вводить данные в контрол, имевший фокус за 5 контролов до того как...

> Где фигурирует имя формы в моем примере? Есть имя элемента - субформы, а я обычно делаю его одинаковым для всех форм (если субформа одна).

Вот именно "...если субформа одна"!! А если разные - для разных целей? А если еще и несколько уровней вложения (о чем я уже говорил)?? Не просто Me.Subforma, a Me.Subforma.Subforma.SubForma...??
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139695
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С фокусами может получиться нежелательный "фокус" - пользователь случайно на цепочке событий щелкнет мышкой нитуда и весь алгоритм сломался, думаю надо ити по другому пути.
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139705
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Кто Вам такое сказал? Не собираюсь я вводить данные в контрол,
> имевший фокус за 5 контролов до того как...

Мне показалось вы и сказали, разве это не ваша фраза
>Жаль, конечно, что нельзя прямо в ActiveControl вогнать данные,
>не указав имена форм.


И мне до сих пор не понятна ваша проблема,
ну повесьте вы на Вход в поле функцию, в которой
SET ctl = Screen.ActiveControl
И передавайте потом ему, что хотите.
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139746
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Serge Gavrilov, чье мнение для меня очень важно (как говориться, "без балды"), не понял чего я хочу, то, явно, я толком не смог объяснить в чем проблема. Постараюсь подробнее.

Есть несколько форм, созданных для удобства пользователя. С помощью одной очень удобно просматривать объекты в их взаимосвязи, раскрывая при необходимости вложенные формы (Подразделения -> Задачи_Подразделения -> ИспонителиЗадачи -> ПрофессииИсполнителя -> НавыкиИсполнителя и т.д.). Пользователь должен иметь возможность добавлять и редкатировать данные непосредственно в этой форме. С помощью других удобно вводить данные (как правило, это простые формы с подчиненными без вложенных или с не более чем 1 уровнем вложения. Возможность ввода исполнителей и/или его профессий продублирована (опять же для удобства родимого пользователя) в нескольких формах. Вот и хотелось бы не писать для каждой формы свою функцию или процедуру. Если бы еще поле в форме было бы одно для Испонителя и одно для профессии, а то у Исполнителя в этой же таблице есть основной помощник со своей основной профессией, которые тоже удобнее выбирать из справочника.

А насчет
>Мне показалось вы и сказали, разве это не ваша фраза
>Жаль, конечно, что нельзя прямо в ActiveControl вогнать данные,
>не указав имена форм
Фраза моя. Не отрицаю. Хотелось бы примерно так
Код: plaintext
1.
Screen.PreviousControl.SetFocus
ActiveControl.Value =  "значение" 

Т.е. вернуть фокус полю, из которого вышел для нажатия кнопки и в него же вернуть данные
При этом, кстати, прав и V. Motchulsky, что
>С фокусами может получиться нежелательный "фокус"
Но это решаемо. MsgBox с вопросом и именем контрола, куда вернулся фокус, и пусть пользователь сам думает туда ли ему надо вставлять данные.
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139775
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Витал, почему вы никак не комментируете мое предложение задавать
переменной значение активного контрола при входе.
Пишите в них общую функцию, в которой
SET ctl = Screen.ActiveControl

И потом этому ctl присваиваете значение.
Я часто использую подобное: на дабл-клик открываю вспомогательную форму. в которой может быть выбрано значение для поля. После закрытия вспомогательной формы, естественно, активно рабочее поле.
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139837
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Serge Gavrilov.
Я Вас правильно понял? На событие вход всех полей во всех формах, куда я хочу вставлять данные, выполнять функцию в которой
Set ctl = Screen.ActiveControl ?
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139851
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32139897
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо! Как вариант, сгодится. :))
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32140558
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай, кому интересно.

Сделал, как советовал Serge Gavrilov. Но
Код: plaintext
SET ctl = Screen.ActiveControl 
на событие вход отрабатывает не корректно (может это глюк). Мышкой щелкал по полям субформ разного уровня вложения (вроде событие вход произошло!!?). Не тут то было!! В переменной остается прежнее значение. Если сначала щелкнуть любой контрол в нужной субформе и только потом интересующий - все нормально. Сразу - никак. "Повесил" функцию на событие "получение фокуса" - все отлично работает.
Еще раз спасибо Serge Gavrilov за хороший совет .
...
Рейтинг: 0 / 0
и имя формы и имя Controla формы, потерявшего фокус?
    #32141015
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу бага со входом интересно, надо будет посмотреть.
Рад, что чем то помог.
Успехов.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / и имя формы и имя Controla формы, потерявшего фокус?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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