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 |


