A3–4. В существующей базе данных «Спорт» (см. упражнение A1–2)
с помощью соответствующих запросов вывести следующие данные:

1)  список всех спортсменов, включающий поля «Фам», «Страна» и дополнительное вычисляемое поле «Среднее» (равное среднему значению баллов, полученных спортсменом за каждое упражнение). Список отсортировать по убыванию поля «Среднее»;

2)  список всех американских и французских спортсменов, включающий поля «Страна» и «Фам» и отсортированный в алфавитном порядке по странам, а в пределах каждой страны — по фамилиям;

3)  список всех спортсменов, у которых результат на перекладине лучше, чем результат на кольцах. Список должен включать поля «Фам», «Перекл» и «Кольца». Отсортировать список по убыванию результата на перекладине.

Решение

Откройте базу данных «Спорт» (см. 2.1).

Запрос A3-4-1

Создайте новый запрос, включив в него таблицу «Гимнастика» (см. 3.1),
и поместите на бланк запроса поля «Фам» и «Страна» (см. 3.2).

3.14. Определение вычисляемого поля в запросе: перейдите на третий столбец бланка запроса (этот столбец пока является пустым), введите в строку «Поле» текст: Среднее: (Перекл+Конь+Кольца)/3 и нажмите [Enter]. После нажатия [Enter] имена всех полей будут заключены в квадратные скобки: Среднее: ([Перекл]+[Конь]+[Кольца])/3.

Таким образом, для определения вычисляемого поля (то есть поля, определяемого на основе других полей таблицы) в строку «Поле» бланка запроса надо ввести имя вычисляемого поля, двоеточие и формулу, по которой данное поле вычисляется.

НЕ нашли? Не то? Что вы ищете?

Для того, чтобы введенная формула целиком отображалась на экране, увеличьте ширину соответствующего столбца бланка запроса (см. последнее примечание к 3.2).

Установите сортировку вычисляемого поля «Среднее» по убыванию (см. 3.3).

3.15. Настройка свойств вычисляемого поля: оставаясь в столбце «Среднее», выполните команду «Вид | Свойства» или нажмите кнопку ;
в появившемся окне «Свойства поля» на вкладке «Общие» определите свойство «Формат поля» следующим образом: 0,000 (ср. с 1.20), после чего закройте окно свойств.

Выполните созданный запрос и сохраните его под именем A3-4-1.

Запрос A3-4-2

Очистите бланк запроса (см. 3.13) и поместите на него поля «Страна»
и «Фам». Установите сортировку обоих полей по возрастанию.

3.16. Задание нескольких условий отбора для одного поля: для поля «Страна» в строке «Условие отбора» укажите =США, в строке «Или» (расположенной ниже строки «Условие отбора») укажите =Франция.

Š Требуемые условия отбора можно объединить в одной строке, используя
логическую операцию Or — «логическое ИЛИ»: =США Or =Франция.

Выполните созданный запрос и сохраните его под новым именем A3-4-2 (см. 3.5).

Запрос A3-4-3

Очистите бланк запроса и поместите на него поля «Фам», «Перекл» и «Кольца». Установите сортировку поля «Перекл» по убыванию.

В строку «Условие отбора» для поля «Перекл» введите строку >[Кольца].

Š Требуемый запрос можно также получить, поместив в условие отбора для поля «Кольца» текст <[Перекл]. Обратите внимание на то, что в подобных условиях имена полей надо обязательно заключать в квадратные скобки.

Выполните созданный запрос и сохраните его под новым именем A3-4-3.

Закройте базу данных «Спорт» (см. 1.17).

A3–5. В существующей базе данных «Спорт» (см. упражнение A1–2)
с помощью соответствующих запросов вывести следующие данные:

1)  список из 3 призеров в упражнении на перекладине, включающий поля «Фам», «Страна» и «Перекл» и отсортированный по убыванию баллов, полученных за это упражнение;

2)  список всех спортсменов, у которых суммарное количество баллов за все снаряды превышает 28. Список должен включать поля «Фам», «Страна» и дополнительное вычисляемое поле «Сумма» (равное сумме баллов, полученных спортсменом за каждое упражнение). Список отсортировать по убыванию поля «Сумма»;

3)  список спортсменов, набравших хотя бы в одном упражнении менее 9 баллов. Список должен включать поля «Фам», «Страна»,
«Перекл», «Кольца» и «Конь» и быть отсортированным по полю «Фам»;

4)  список всех американских спортсменов, у которых результат на перекладине лучше, чем результат на коне. Список должен включать поля «Фам», «Перекл» и «Конь». Отсортировать список по убыванию результата на перекладине;

5)  список всех российских и американских спортсменов, у которых число баллов за упражнение на кольцах не превосходит 9,5. Список должен включать поля «Фам», «Страна» и «Кольца». Отсортировать список по убыванию результата на кольцах.

Указания

Запрос A3-5-1

Поскольку в выпадающем списке «Набор значений» (см. 3.9) вариант «3» отсутствует, его следует ввести с клавиатуры в поле списка.

Запрос A3-5-3

Воспользуйтесь логической операцией Or, поместив, например, в поле «Перекл» следующее условие: <9 Or [Кольца]<9 Or [Конь]<9 (в данном условии, как и в условии из запроса A3-4-3, имена полей надо заключать в квадратные скобки).

A3–6. В существующей базе данных «Магазин» (см. упражнение A1–3)
определить на основе таблицы «Клиенты» следующие запросы:

1)  «Клиенты (ФИО)» — содержит все поля таблицы, кроме поля «Ном», записи отсортированы по фамилиям клиентов (в алфавитном порядке);

2)  «Клиенты (скидка)» — содержит поля «ФИО», «Скидка»,
«ДатаР»; вначале перечисляются клиенты со скидкой, затем — клиенты без скидки. И клиенты со скидкой, и клиенты без скидки сортируются по возрастанию даты рождения.

A3–7. В существующей базе данных «Магазин» (см. упражнение A1–3)
с помощью соответствующих запросов вывести следующие данные:

1)  список клиентов, живущих на проспекте Октября. Список должен включать поля «ФИО», «Адрес» и «Тел» и быть отсортированным по фамилиям клиентов;

2)  список клиентов, живущих в частных домах (в их адресах отсутствует номер квартиры). Список должен включать поля «ФИО», «Адрес» и «Тел» и быть отсортированным по фамилиям;

3)  список клиентов, не имеющих телефона или имеющих телефон от АТС 34. Список должен включать поля «ФИО», «Адрес» и «Тел» и быть отсортированным по возрастанию номеров телефонов;

4)  список клиентов, родившихся после 01.01.1960. Список должен включать поля «ФИО», «Адрес» и «ДатаР» и быть отсортированным по возрастанию даты рождения;

5)  список клиентов, возраст которых превышает 50 лет. Список должен включать поля «ФИО», «Адрес» и «ДатаР» и быть отсортированным по убыванию даты рождения.

Указания

Запросы A3-7-1 – A3-7-2

3.17. Отбор записей с использованием шаблонов строк: в качестве условия отбора для запроса A3-7-1 укажите в поле «Адрес» строку пр. Октября* (строка оканчивается символом «звездочка»), которая при нажатии [Enter] будет преобразована к виду Like "пр. Октября*". Для запроса A3-7-2 условие отбора (также в поле «Адрес») должно иметь вид Not Like "* кв. *" (строка в кавычках начинается и оканчивается символом «звездочка»).

Š Символ «*» используется в шаблонах (образцах) строк для обозначения любого количества любых символов; операция Like обеспечивает сравнение строки с шаблоном. Так, сравнение вида «[Адрес] Like "пр. Октября*"» будет истинным в том случае, если поле «Адрес» начинается с текста «пр. Октября». Аналогично, сравнение «Like "* кв. *"» позволяет отобрать только те строки, в которых содержится текст « кв. », а добавляя к этому сравнению операцию отрицания Not, можно отобрать строки, не содержащие данного текста.

Запрос A3-7-3

Для поля «Тел» укажите два условия отбора (см. 3.16): первое условие имеет вид is Null и позволяет отобрать записи, в которых поле «Тел» является пустым; во втором условии (в строке «Или») используется шаблон 34* (см. 3.17), позволяющий отобрать записи, в которых поле «Тел» начинается
с цифр «34».

Запрос A3-7-4: разработайте по аналогии с запросом A3-2-4.

Запрос A3-7-5

3.18. Использование системной даты: для отбора клиентов, возраст которых превышает 50 лет, в поле «ДатаР» можно указать следующее условие:
<Now()–50*365. Функция Now() возвращает текущую дату — системную дату компьютера, из этой даты вычитается нужное число дней (для построения более точного условия надо учесть високосные годы, насчитывающие 366 дней).

4   Отчеты

A4–1. В существующей базе данных «Видео» определить на основе запросов «Фильмы (названия)» и «Фильмы (жанры)» (см. упражнение A3–1) ленточные отчеты с такими же именами. Установить для обоих отчетов книжную ориентацию страниц и отформатировать их по образцам. В отчете «Фильмы (жанры)» выполнить группировку по жанрам и странам.

Решение

Откройте существующую базу данных «Видео» (см. 2.1).

4.1. Создание отчета: в окне базы данных перейдите к группе объектов «Отчеты», [Создать]; в появившемся диалоговом окне «Новый отчет» выберите вариант «Автоотчет: ленточный», в выпадающем списке выберите элемент «Фильмы (названия)» (имя запроса – источника данных для создаваемого отчета), [OK]. В результате будет создан отчет, имеющий вид таблицы, каждая строка которой соответствует одной записи из исходного запроса. Отчет будет выведен в режиме предварительного просмотра; в этом режиме отчет отображается в том виде, в котором он будет выведен на печать.

Š Аналогичными действиями можно создать простой отчет (отчет
«в столбец»
); для этого в диалоговом окне «Новый отчет» надо выбрать вариант «Автоотчет: в столбец». В простом отчете каждая запись представляет собой бланк, слева в котором располагаются подписи к полям, а справа — сами поля (ср. с простой формой, создание которой описано в 2.20).

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

4.2. Переход в режим конструктора отчетов: «Вид | Конструктор» или .

Š В окне конструктора отчетов отображается макет отчета, подобный макету формы (см. 2.3). Кроме разделов, совпадающих с разделами макета формы
(«Заголовок отчета», «Область данных» и «Примечание отчета»), макет ленточного отчета содержит два дополнительных раздела: верхний и нижний колонтитулы. Заголовок помещается в начале отчета, примечание — в конце, а колонтитулы размещаются в начале и конце каждой страницы отчета. В качестве верхнего колонтитула в ленточном отчете указываются заголовки столбцов таблицы
(то есть подписи к полям); в нижнем колонтитуле обычно указывается дата создания отчета (слева) и номер текущей страницы вместе с общим числом страниц (справа). Следует также обратить внимание на новые элементы макета, отсутствующие в стандартных макетах форм: это горизонтальные линии, отделяющие колонтитулы от области данных.

Š Выделять и перемещать элементы отчета, а также изменять их размер, можно теми же действиями, что и элементы формы (см. 2.4).

Сохраните созданный отчет (см. 1.5); при первом сохранении следует указать его имя: Фильмы (названия).

Š Отчет можно сохранять и в режиме предварительного просмотра; для этого надо использовать соответствующую команду меню или комбинацию [Ctrl]+[S].

4.3. Настройка стиля отчета: снимите выделение со всех элементов, щелкнув мышью на пустой области окна макета; «Формат | Автоформат...»,
в появившемся окне выберите вариант «Простой» («Обычный» в Access 2000/XP), [OK].

Š Как и в случае форм (см. 2.5), стиль отчета желательно устанавливать в самом начале его редактирования.

4.4. Настройка ориентации страниц отчета: «Файл | Параметры страницы...», перейдите на вкладку «Страница», в разделе «Ориентация» выберите вариант «Книжная», [OK].

Š С помощью команды «Файл | Параметры страницы...» можно также настраивать поля страниц отчета (вкладка «Поля»).

4.5. Переход в режим предварительного просмотра отчета: «Вид | Предварительный просмотр» или . Обратите внимание на то, что щелчок мышью на тексте отчета в режиме предварительного просмотра позволяет переключать масштаб изображения.

Вернитесь в режим конструктора (см. 4.2) и сохраните сделанные изменения (см. 1.5).

Смена ориентации страницы с альбомной на книжную привела к тому, что правая часть области данных (а также верхних и нижних колонтитулов) теперь выходит за область печати. Кроме того, заголовок поля «Длительность» слишком велик по сравнению с размерами значений из данного поля, поэтому его целесообразно заменить на Длит.. Заголовок самого отчета можно заменить на более краткий: Фильмы. Наконец, желательно откорректировать ширину полей данных, увеличив ее для поля «Назв» и уменьшив для полей «Страна» и «Жанр». Выполните все эти корректировки, используя те же приемы, что и при настройке внешнего вида формы (см. 2.12–2.14). В колонтитулах необходимо также уменьшить длину разделительных линий. Это делается следующим образом.

4.6. Уменьшение размеров разделительных линий: щелкните мышью на нужной линии; в результате линия станет выделенной, и на ее концах появятся квадратные маркеры. Зацепите мышью за правый маркер и перетащите его влево на требуемое расстояние (если правый маркер линии не виден на экране, то для его отображения воспользуйтесь горизонтальной полосой прокрутки).

После выполнения указанных корректировок при переходе к режиму предварительного просмотра может появиться предупреждающее сообщение «Ширина раздела превышает ширину страницы». В этом случае надо вернуться в режим конструктора (нажав кнопку [Отмена]) и уменьшить ширину отчета, как описано ниже.

4.7. Уменьшение ширины отчета: область отчета в режиме конструктора выделяется белым цветом. Для уменьшения ее ширины зацепите мышью правую границу этой белой области и перетащите ее влево до ближайшего элемента отчета.

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

4.8. Изменение промежутков между строками отчета: для уменьшения или увеличения промежутков достаточно соответствующим образом изменить высоту раздела области данных (как в случае форм — см. 2.17).

4.9. Настройка элементов нижнего колонтитула: в стандартном макете отчета нижний колонтитул содержит два поля, каждое из которых представляет собой формулу (признаком формулы является знак равенства в начале текста поля). Формула =Now() обеспечивает вывод текущей системной даты (см. 3.18), а формула ="Страница " & [Page] & " из " & [Pages] формирует текстовую строку, объединяя строки «Страница » и « из » (текстовые строки в формулах заключаются в двойные кавычки) и два особых поля, доступных в любом отчете: Page (текущая страница отчета) и Pages (общее число страниц отчета; поля заключаются в квадратные скобки). Откорректируйте последнюю формулу следующим образом: ="Страница " & [Page]. Теперь в данном элементе колонтитула будет указываться только номер текущей страницы отчета (без указания общего числа страниц). Настройте также выравнивание элементов нижнего колонтитула:

·  элемент с датой переместите к левой границе отчета и выровняйте текст этого элемента по левому краю кнопкой ;

·  элемент с номером страницы переместите к правой границе отчета и выровняйте текст этого элемента по правому краю (в Access 97 нет кнопки, обеспечивающей выравнивание по правому краю; в этой версии необходимо вызвать окно свойств данного элемента (см. 2.8) и на вкладке «Макет» установить значение свойства «Выравнивание текста» равным «По правому краю»).

Сохраните откорректированный отчет (см. 1.5).

4.10. Закрытие отчета: на рамке окна отчета или [Ctrl]+[F4].

Š Кнопка и клавиша [Esc] в режиме предварительного просмотра также позволяют закрыть отчет, но только в том случае, когда после его открытия он не переводился в режим конструктора. Если же предварительный просмотр был вызван из режима конструктора, то нажатие кнопки или клавиши [Esc] приводит к возврату в режим конструктора.

Создайте новый ленточный отчет на основе запроса «Фильмы (жанры)» (см. 4.1), сохраните его под этим же именем, измените его стиль на «Простой» («Обычный» в Access 2000/ХР — см. 4.3), измените ориентацию страницы на книжную (см. 4.4) и откорректируйте макет отчета так же, как в случае отчета «Фильмы (названия)».

Повторно сохраните откорректированный отчет.

Недостатком полученного отчета является то, что в первом и во втором его столбце («Жанр» и «Страна») имеется много одинаковых значений, расположенных одно под другим. Одним из способов исправления этого недостатка является группировка данных.

4.11. Группировка данных в отчете:

·  перейдите в режим конструктора;

·  «Вид | Сортировка и группировка» или ; в результате появится окно «Сортировка и группировка»;

·  в первую ячейку столбца «Поле/выражение» с помощью выпадающего списка введите название поля «Жанр»; для свойства «Заголовок группы» в нижней части окна установите значение «Да»;

·  закройте окно «Сортировка и группировка», нажав кнопку .

В результате описанных действий в макете отчета появится новый раздел: «Заголовок группы «Жанр»», расположенный непосредственно под разделом верхнего колонтитула. Перетащите мышью в этот раздел поле «Жанр» из раздела «Область данных» и уменьшите высоту раздела «Заголовок группы «Жанр»» так, чтобы выше и ниже поля «Жанр» не было пустых промежутков (см. 2.17).

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

Снова вызовите окно «Сортировка и группировка» и во второй строке верхней таблицы (ниже строки «Жанр») введите название поля «Страна»; для этого поля, как и для жанра, установите значение свойства «Заголовок группы» равным «Да». После закрытия окна «Сортировка и группировка» в макете отчета появится еще один раздел: «Заголовок группы «Страна»». Переместите в этот раздел поле «Страна» из области данных (не меняя его позиции по горизонтали: это поле по-прежнему должно располагаться под элементом-надписью «Страна» из верхнего колонтитула).

Перейдя в режим предварительного просмотра, убедитесь, что теперь один раз выводится не только каждый жанр, но и каждая страна в пределах одного жанра.

4.12. Дополнительная сортировка в отчете: при выполнении группировки может быть нарушен порядок сортировки данных по другим полям. Так, в нашем случае названия русских или французских комедий в отчете могут располагаться не по алфавиту. Для восстановления дополнительной сортировки по названиям следует опять вызвать окно «Сортировка и группировка» и ввести в очередную (третью) ячейку столбца «Поле/выражение» поле «Назв» — с ним, как и с предыдущими полями, автоматически будет связан порядок сортировки «По возрастанию» (порядок сортировки полей указывается во втором столбце окна «Сортировка и группировка»). Подчеркнем, что для поля «Назв» не следует изменять значения его свойств в нижней части окна «Сортировка и группировка».

4.13. Дополнительное форматирование заголовков групп данных: выделите элемент «Линия» в верхнем колонтитуле и скопируйте его в буфер обмена (кнопкой или комбинацией [Ctrl]+[C]), выделите раздел «Заголовок группы «Жанр»» (щелкнув мышью на его сером заголовке; при этом цвет заголовка раздела изменится на черный) и вставьте в него копию линии (кнопкой или комбинацией [Ctrl]+[V]). В результате линия будет вставлена выше элемента «Жанр». Перетащите мышью вставленную линию ниже элемента «Жанр». С помощью окна свойств линии (см. 2.8) установите ее ширину равной 1 пункту (свойство «Ширина границы» на вкладке «Макет»). Выделите поле «Жанр» и установите для него курсивное начертание (см. 2.11).

Сохраните откорректированный отчет (см. 1.5) и закройте базу данных (см. 1.17).

A4–2. В существующей базе данных «Спорт» определить на основе запроса «Гимнастика (страны)» (см. упражнение A3–3) ленточный отчет с таким же именем. Установить для отчета книжную ориентацию страниц, отформатировать его по образцу и выполнить в нем группировку по странам.

A4–3. В существующей базе данных «Магазин» определить на основе запросов «Клиенты (ФИО)» и «Клиенты (скидка)» (см. упражнение A3–6) ленточные отчеты с такими же именами. Установить для обоих отчетов книжную ориентацию страниц и отформатировать их по образцам; в отчете «Клиенты (скидка)» выполнить группировку по полю «Скидка».

5   Базы данных, содержащие несколько связанных таблиц. Составные формы и составные отчеты

A5–1. Дополнить существующую базу данных «Видео» (см. упражнение
A1–1), включив в таблицу «Фильмы» поле «НомКас» (см. последний столбец таблицы 1 в приложении) и создав таблицу «Кассеты»
(см. таблицу 4 в приложении). Связать таблицы с помощью полей «Ном» (таблица «Кассеты») и «НомКас» (таблица «Фильмы»), после чего заполнить их данными, указанными в таблицах 1 и 4 приложения.

Решение

Откройте базу данных «Видео» (см. 2.1).

Откорректируйте структуру таблицы «Фильмы», открыв ее в режиме конструктора (см. 1.15) и добавив в список полей новое поле «НомКас» типа «Числовой» размера «Длинное целое» (см. 1.3, 1.7), после чего сохраните структуру таблицы (см. 1.5) и закройте таблицу «Фильмы» (см. 1.16).

Действуя так же, как при создании таблицы «Фильмы» (см. 1.2–1.3), создайте новую таблицу, определив ее поля следующим образом:

Имя поля

Тип данных

Описание

Ном

Счетчик

Порядковый номер кассеты

Фирма

Текстовый

Фирма-производитель

Длит

Числовой

Длительность кассеты

Определите следующие свойства полей таблицы (см. 1.7):

Поле «Ном»

Подпись:

Номер

Поле «Фирма»

Размер поля:

10

Обязательное поле:

Да

Поле «Длит»

Размер поля:

Целое

Подпись:

Длительность

Обязательное поле:

Да

Поле «Ном» сделайте ключевым (см. 1.4), сохраните созданную таблицу под именем Кассеты (см. 1.5) и закройте ее (см. 1.16).

5.1. Определение связей между таблицами:

·  «Сервис | Схема данных...» или ;

·  с помощью появившегося окна «Добавление таблицы» добавьте в схему данных таблицы «Кассеты» и «Фильмы» (щелкая на их именах мышью и нажимая [Добавить]), затем нажмите кнопку [Закрыть]. В результате в окне «Схема данных» будут отображаться окна таблиц, содержащие все их поля (как в верхней части окна конструктора запросов — см. 3.1);

·  увеличьте высоту окна таблицы «Фильмы» так, чтобы в нем отображались все поля (для этого надо зацепить мышью за нижнюю рамку окна «Фильмы» и перетащить рамку вниз);

·  по условию упражнения таблицы должны быть связаны с помощью
полей «Ном» (таблица «Кассеты») и «НомКас» (таблица «Фильмы»). Для создания этой связи зацепите мышью одно из данных полей
(например, поле «Ном» таблицы «Кассеты») и перетащите его на другое поле (поле «НомКас» таблицы «Фильмы»);

·  в появившемся окне «Связи» («Изменение связей» в Access 2000/ХР) установите флажок «Обеспечение целостности данных» и нажмите кнопку [Создать].

Созданная связь будет изображаться в окне схемы данных в виде линии
с метками на концах (рядом с полем «Ном» таблицы «Кассеты» указывается цифра «1», а рядом с полем «НомКас» таблицы «Фильмы» — знак бесконечности «¥»). Наличие этих двух меток означает, что данная связь имеет тип «Один ко многим»:
с одной («1») записью из таблицы «Кассеты» можно связать много («¥») записей из таблицы «Фильмы» (иными словами, на одну кассету можно записать несколько фильмов).

Š Флажок «Обеспечение целостности данных» позволяет избежать ошибочных ситуаций при вводе данных в связанные таблицы. Так, при попытке ввести в поле «НомКас» номер, отсутствующий в таблице «Кассеты» (то есть при попытке связать фильм с несуществующей кассетой), будет выдано сообщение об ошибке. Заметим, что установить связь с обеспечением целостности данных можно только между полями одного и того же типа и размера (в нашем случае оба поля связи имеют тип «Числовой» и размер «Длинное целое»).

Š Для удаления связи между таблицами следует щелкнуть мышью на линии, изображающей данную связь (при этом толщина линии увеличится), нажать клавишу [Del] и подтвердить удаление в диалоговом окне, выбрав в нем вариант [Да].

Š Для повторного отображения окна «Связи», в котором настраиваются свойства связи между таблицами, надо выполнить двойной щелчок мышью на линии, изображающей данную связь.

Сохраните схему данных одним из действий, описанных в 1.5, и закройте окно схемы данных.

Заполните таблицу «Кассеты», используя таблицу 4 приложения, после чего заполните поле «НомКас» в существующих записях таблицы «Фильмы».

Š Порядок заполнения таблиц является существенным: наличие контроля за целостностью данных (см. первое примечание к 5.1) приводит к тому, что в поле «НомКас» таблицы «Фильмы» можно вводить только номера существующих кассет (то есть кассет, информация о которых хранится в таблице «Кассеты»).

A5–2. В существующей базе данных «Видео» разработать на основе связанных таблиц «Фильмы» и «Кассеты» (см. упражнение A5–1) составную форму «Кассеты и фильмы» и отформатировать ее по образцу.

Решение

Ввод данных в связанные таблицы удобно выполнять с помощью особой
составной формы, состоящей из двух форм: основной и подчиненной.

Создайте новую простую форму на основе таблицы «Кассеты» (см. 2.20); эта форма будет играть роль основной формы. В созданной форме настройте подписи к полям и расположите поля в одну линию, как указано в образце. Поле «Ном» отцентрируйте (см. 2.11) и отключите к нему доступ, не меняя его внешнего вида (см. прием 2.10 и примечание к нему); поле «Фирма» преобразуйте в поле со списком значений Sony;RAKS;TDK;Konica (см. 2.7–2.9).
Измените заголовок формы на Кассеты и фильмы (см. 2.18) и сохраните форму под этим же именем (см. 1.5).

5.2. Включение в основную форму подчиненной формы с помощью перетаскивания: увеличьте высоту области данных основной формы (см. 2.17) и расположите на экране без наложений два окна: окно конструктора с основной формой «Кассеты и фильмы» и окно базы данных (проще всего это сделать командой «Окно | Слева направо»). В окне базы данных перейдите к группе объектов «Формы». Зацепите мышью значок формы «Фильмы (ленточная форма)» в окне базы данных и перетащите этот значок на свободное место в нижней части раздела «Область данных» макета формы «Кассеты и фильмы». В результате в область данных основной формы «Кассеты и фильмы» будет вставлен новый элемент — подчиненная форма. Измените заголовок элемента – подчиненной формы на Фильмы и настройте его шрифт по образцу (см. 2.11).

Перейдите в стандартный режим формы и убедитесь, что в подчиненной форме отображаются те записи из таблицы «Фильмы», которые связаны с текущей записью из таблицы «Кассеты». Настройте размеры подчиненной и основной формы по образцу (см. рис.) и сохраните откорректированную основную форму.

Š Связь между основной и подчиненной формой устанавливается с помощью свойств подчиненной формы «Объект-источник», «Подчиненные поля» и «Основные поля» на вкладке «Данные» (в свойстве «Основные поля» указывается поле связи из основной формы, в свойстве «Подчиненные поля» указывается поле связи из подчиненной формы). При описанном выше перетаскивании эти поля определяются автоматически на основе информации о связях между таблицами «Кассеты» и «Фильмы» (см. 5.1).

Š В качестве подчиненной была выбрана ранее созданная форма «Фильмы (ленточная форма)» (см. упражнение A2–1), которую можно использовать и как самостоятельную форму базы данных. Часто подчиненную форму разрабатывают специально для включения в некоторую составную форму.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5