Access 2002

Затруднения у  разработчиков


Хотя мы уже говорили об этом в главе 6, вопрос этот вызывает затруднения у стольких разработчиков, что стоит напомнить еще раз: ссылаясь на элемент управления в подчиненной форме следует указывать имя элемента управления Subform, а не самой формы. С точки зрения главной формы, имени подчиненной формы не существует: главная форма знает только имена своих элементов управления. Она содержит коллекцию ссылок на них, и только элемент Subform, который можно получить из этой коллекции, содержит в своем свойстве Form ссылку на объект подчиненной формы.

Итак, перед нами стоит задача как-то обойти ограничение на количество уровней данных, отображаемых в составной форме. Вместо того чтобы использовать много уровней подчиненных форм (что невозможно), можно поместить в главную форму несколько подчиненных форм одного уровня (не вкладывая их одну в другую)

и синхронизировать их программным путем. На  7.18 показана такая форма frmSubformSynch с двумя подчиненными формами: frmSubformSynchOrders и frmNes- tedOrderDetail. Механизм их синхронизации прост: процедура обработки события Current «главной» из подчиненных форм заполняет обычно скрытое текстовое поле главной формы. Код этой процедуры может выглядеть примерно так:

Устанавливать значения для свойств UnkChildFiekJs и LinkMasterFields элемента управления Subform не обязательно. В разделе «Как связать формы самостоятельно» этой главы указано, что вы можете взять все управление данными подчиненной формы на себя. Это требует программирования, но зато обеспечивает большую гибкость.

Оператор обработки ошибок предусмотрен для ситуации, когда производится попытка открыть форму, для которой нет родительской формы, содержащей текстовое поле txtLink.

Комментарии закрыты