Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otveti / 5.doc
Скачиваний:
10
Добавлен:
16.12.2013
Размер:
133.16 Кб
Скачать

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 Порядок создания форм (формы создаются, начиная с самой внутренней)

  1. Создаем форму для таблицы 3. Эта форма ленточная. Название паЬЗ.

  2. Создаем форму для таблицы 2. Эта форма должна быть простой, но лучше её создать с помощью автоформы как ленточную и в режиме конструктора изменить этоттип на простой, но в ней сохранятся все области. Область данных нужно увеличить, чтобы в нее разместить форму ЙаЬЗ. Название ftab2.

  3. Создаем форму для таблицы 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ит([Количество] • [Цена]) Примечания формы не отображаются, если для свойства Режим по умолчанию задано значение Таблица Чтооы_вывести промежуточную сумму заказа г главной форме, создайте в главной форме поле, использующее выражение для обращения к элементу управления в подчиненной форме, содержащему вычисляемое значение. Например, можно ввести следующее выражение в ячейку свойства Данные текстового поля главной формы: =[Заказы]![ОтускнаяЦена]

  1. Формы. Модули фопм. функчнн аля вычисления детальных полей в форме

  2. Формы. Модули форм. Способы организации массивов из элементов Формы.

  3. Формы. Модули окон. Способы организации массивов из элементов источника, не расположенных в форме,Модуль - объект, содержащий одну или несколько пользовательских процедур, написанных на языке VBA,

  4. Формы. Модуль Формы. Алгоритм нахождения максимального и таписи с одним и всеми номерами.Пример. Определить месяца с наибольшим количеством рейсов в заданный город с указанием всех номеров рейсов.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слить не один месяц с максимальным количеством рейсов, а вывести все месяца с максимальным количеством рейсов в заданный город, то в форме надо разместит не поле, а список, источником строк которого будет запрос.

Соседние файлы в папке otveti