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

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

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

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

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

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


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

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

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

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

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

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


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