Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: получить имя подчиненной формы
 
 автор: dmsrv803   (24.01.2011 в 16:09)   личное сообщение
 
 

Есть форма (MainForm) в ней контрол - подчиненная форма (SubForm). У контрола в свойстве объект-источник = Form1 (другая форма).
Вопрос - как форме Form1 узнать имя контрола (SubForm), к которому она прикручина?

  Ответить  
 
 автор: osmor   (24.01.2011 в 17:19)   личное сообщение
 
 

из субформы получаем ссылку на главную форму (свойсво Parent)
в главной форме перебираем все контролы
если находим контрол подформа, у нее проверяем имя объекта истоника, если совпадает с именем нашей формы - это он, если нет - берем следующий контрол.

  Ответить  
 
 автор: dmsrv803   (24.01.2011 в 17:31)   личное сообщение
 
 

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

  Ответить  
 
 автор: osmor   (24.01.2011 в 17:32)   личное сообщение
 
 

что из перечисленного мешает использовать предложенный вариант?

  Ответить  
 
 автор: dmsrv803   (24.01.2011 в 17:39)   личное сообщение
 
 

свойство объект-источник у всех контролов с подформой имеет одно и тоже значение. Я для каждого месяца использую форму ввиде календаря.

  Ответить  
 
 автор: osmor   (24.01.2011 в 17:51)   личное сообщение
 
 

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

  Ответить  
 
 автор: dmsrv803   (24.01.2011 в 22:51)   личное сообщение
 
 

Попробую объяснить еще раз. У меня есть готовая форма календаря на месяц (MonthCalendar). Я делая новую форму и создаю в ней двенадцать (для каждого месяца) контролов для вставки подчиненной формы (назовем их Calendar1, Calendar2, ....... Calendar12). В свойстве объект-источник я указываю у всех контролов MonthCalendar. Теоретически в каждом контроле Calendar1, 2,3,... 12 должен открыться свой экземпляр формы MothCalendar. По событию OnOpen формы MonthCalendar выполняется процедура, которая настраивает вид календаря в зависимости от месяца. А для этого мне необходимо узнать к какому контролу прикручена форма с календарем.
Я придумал использовать свойство Tag. Код примерно будет выглядеть так:



For Each ctl In Me.Parent.Controls
If ctl.Name = "Calendar" & ctl.Tag Then
intMonth = ctl.Tag
Call FillMonthCalendar(intMonth)        'вызываю процедуру настройки календаря
EndIf
Next

  Ответить  
 
 автор: Lukas   (25.01.2011 в 01:04)   личное сообщение
 
 

12 раз прошерстить все контролы главной формы?
Вы там греетесь от процессора что-ли?

Из годовой формы в цикле от 1 до 12 вызывайте FillMonthCalendar(intMonth) объектов контролов "Подчиненная форма".
3 строчки кода и никаких переборов коллекции.

  Ответить  
 
 автор: dmsrv803   (25.01.2011 в 09:40)   личное сообщение
 
 

А черт - глубокая мысль.......

  Ответить  
 
 автор: dmsrv803   (24.01.2011 в 23:07)   личное сообщение
 
 


почему не одна подформа с календарем на год?



365 контролов в форме?

  Ответить  
 
 автор: dmsrv803   (24.01.2011 в 17:35)   личное сообщение
 
 

попробую использовать свойство Tag контрола с подчиненной формой.

  Ответить  
 
 автор: osmor   (24.01.2011 в 17:36)   личное сообщение
 
 

Ваше право. но ничего не мешает написать универсальную функцию не требующую дополнительных данных.

  Ответить  
 
 автор: Lukas   (24.01.2011 в 18:02)   личное сообщение
 
 

Если это нужно знать в момент, когда фокус в форме MainForm на контроле "Подчиненная форма", то
Me.Parent.ActiveControl.Name

  Ответить  
 
 автор: dmsrv803   (25.01.2011 в 10:35)   личное сообщение
 
 

Из годовой формы в цикле от 1 до 12 вызывайте FillMonthCalendar(intMonth) объектов контролов "Подчиненная форма".


Ура!! Все получилось!!!! Всем огромное спасибо за помощь!!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList