
- •37.Формы. Элемент «подчиненная Фоома». Назначение, создание, двойства, примеры.
- •39. Формы. Элемент «подчиненная Форма». Создание более чем трех связанных форм.Создадим подчиненную форму для 2 таблиц.
- •40. Формы. Элемент «Подчиненная форма». Вычисления в форма! с подчиненной.
- •45. Формы. Модуль Формы. Алгоритм нахождения среднего в ijiihch и номеров со щачсничми Дольше (меньше) среднего.
39. Формы. Элемент «подчиненная Форма». Создание более чем трех связанных форм.Создадим подчиненную форму для 2 таблиц.
Tabl(kosp, Spec, Dir, Adr) kodsp - первичный ключ
Tab2(kodsp, kodst, fam, via, bal) kodsp - внешний ключ; kodst - первичный ключ
Tab3(kodst, kodpred, ос) kodst - внешний ключ
Tab) tab2 гаЬЗ
Kodsp 1-^ookodsp
Kodst l->ookodst Порядок создания форм (формы создаются, начиная с самой внутренней)
Создаем форму для таблицы 3. Эта форма ленточная. Название паЬЗ.
Создаем форму для таблицы 2. Эта форма должна быть простой, но лучше её создать с помощью автоформы как ленточную и в режиме конструктора изменить этоттип на простой, но в ней сохранятся все области. Область данных нужно увеличить, чтобы в нее разместить форму ЙаЬЗ. Название ftab2.
Создаем форму для таблицы 1. Форма должна быть простой, созданной через конструктор, и содержать область данных, которая должна будет вместить ftab2.Название ftabl.
Связывать формы с помощью элемента «подчиненная форма» (в открытой форме ftab2), свойства которого: источник записей - ftab-3
основное поле - kodst
подчиненное поле - kodst
подпись - fsub2. 4) Открыть форму ftabl в режиме конструктора. В нее разместить элемент «подчиненная форма», свойства которого:
источник записей - ftab2
основное поле - kods3
подчиненное поле - kods3
подпись -fsubl.
Перейдя в режим формы, получим результат - форму, в которой можно просматривать и корректировать 3 таблицы. Изменения, вносимые в форму, будут вноситься в таблицу. Нельзя изменять ключевые поля в подчиненных таблицах, можно только неключевые.
Можно изменять первичные ключи в основной таблице, автоматически ключ изменится в др. таблицах. Удалять записи можно из основных таблиц или из самых внутренних. Удаление записей из основных таблиц влечет за собой удаление всех подчиненных записей.
40. Формы. Элемент «Подчиненная форма». Вычисления в форма! с подчиненной.
Подчиненные формы используются для одновременного заполнения, просмотра или корректировки нескольких таблиц одновременно. Подчиненные формы задаются с помощью элемента управления формой «Подчиненная форма». Он внедряется в основную форму и позволяй- для каждой записи осиовкой формы просматривать все записи подчиненнон формы, имеющей такое же ключевое значение, как и первичный ключ основной формы. Подчиненные формы создаются для связанных таблиц. При этом главная форма может быть только простой, т е содержащей только 1 запись. Подчиненная форма может быть как простой (при отношении таблиц 1 к 1), так и ленточной (при отношении таолиц 1 ко многим) Свойства- 1 Имя формы - имя той формы, которая связана с подчиненной таблицей. 2. Основное поле - имя первичного ключа из основной таблицы. В таких формах все изменения, вносимые в форму будут автоматически вноситься г таблицу Нельзя изменять ключевые поля в подчиненных формах, но можно не ключевые. Можно изменять первичный ключ в основной форме, он автоматически меняется во всех таблицах. Подчиненные формы можно создавать путем перетаскивания созданных ранее форм в конструктор основной формы При этом связи устанавливаются автоматически, если таблицы связанные. Перетаскивание должно осуществляться при включенной кнопке Мастер на панели элементов Недостать глубина вложенности не более двух, только 1 форма может быть ленточной. Вычисления: Если подчиненная форма ленточная, она может содержать Область примечаний, в которую можно вводить поле по группе записей, выведенных в подчиненной форме. Для подчиненной формы в качестве заголовков можно использовать поля, взятые из основной формы. Чтобы сделать измененный заголовок в зависимости от основной формы, необходимо в области Заголовка подчиненной формы внедрить свободное поле и присваивать ему значения из основной формы. Имеется возможность вычислить промежуточный итог в подчиненной форме и отооразить его в главной форме В следующем примере главная форма и подчиненная форма основаны на таблицах с отношением «один-ко-многим». Главная форма показывает записи, находящиеся на стороны «один» этого отношения; подчиненная форма показывает записи на стороне «многие». Главная форма, основанная на таолице «Заказы», ограничивает подчиненную форму записями относящимися к текущему заказу. Подчиненная форма, основанная на таблице (Заказано», вычисляет промежуточный итог заказа, но не отооражает его. I лавная форма отображает промежуточный итог заказа. Для расчета промежуточной стоимости заказа в подчиненной форме следует дооавить текстовое поле в ооласть примечании подчиненной формы и ввести в ячейку свойства Данные выражение, содержащее функцию Sum. Например, следующее выражение вычисляет общую стоимость заказов для всех товаров в форме «Заказы»- =5ит([Количество] • [Цена]) Примечания формы не отображаются, если для свойства Режим по умолчанию задано значение Таблица Чтооы_вывести промежуточную сумму заказа г главной форме, создайте в главной форме поле, использующее выражение для обращения к элементу управления в подчиненной форме, содержащему вычисляемое значение. Например, можно ввести следующее выражение в ячейку свойства Данные текстового поля главной формы: =[Заказы]![ОтускнаяЦена]
Формы. Модули фопм. функчнн аля вычисления детальных полей в форме
Формы. Модули форм. Способы организации массивов из элементов Формы.
Формы. Модулиокон.Способы организации массивов из элементов источника, не расположенных в форме,Модуль - объект, содержащий одну или несколько пользовательских процедур, написанных на языке VBA,Формы. Модуль Формы. Алгоритм нахождения максимального и таписи с одним и всеми номерами.Пример. Определить месяца с наибольшим количеством рейсов в заданный город с указанием всех номеров рейсов.Public Function Fmax(ParamArray aQ As Variant)
Dim max As Integer
Dim b As Variant
Dim i, j As Integer
max3 0
1-0
For Each bin a
i-i+ 1
If b > max Then max =• b: j = i - 1
Next
Dim mes As Variant
mes = АгтауС'январь", "февраль", "март", "апрель", "май", "июнь")
Fmax = mes(j)
Если надо"вь1Ч11слить не один месяц с максимальным количеством рейсов, а вывести все месяца с максимальным количеством рейсов в заданный город, то в форме надо разместит не поле, а список, источником строк которого будет запрос.