Лабораторная работа MS Access
Цена 1500
Часть 1. Создание и редактирование таблиц.
- Создать новую базу данных. Сохранить ее под именем «Автомобили».
- В базе данных «Автомобили» создать в режиме конструктора таблицу «Модели» следующей структуры:
Поле |
Тип |
Описание |
Параметры |
Код модели |
Числовой |
Код модели по заводскому каталогу |
Размер поля .................... Длинное целое Формат ............................. Основной Число десят. зн................ 0 Обязательное поле......... Да Индексированное поле. Да(совпадения не допускаются) |
Модель |
Текстовый |
Тип кузова |
Размер поля .................... 20 Индексированное поле. Да(допускаются совпадения) |
Мощность двигателя |
Текстовый |
Числовое значение в квт/л.с. |
Размер поля .................... 10 Индексированное поле. Нет |
Цвет |
Текстовый |
Цвет кузова |
Размер поля .................... 20 Индексированное поле. Нет |
Количество дверей |
Числовой |
Две или четыре |
Размер поля .................... Байт Формат ............................. Основной Число десят. зн................ 0 Знач. по умолчанию...... 4 Условие на знач.............. 2 or 4 Сообщение об ошибке.. Поле может содержать только числа 2 или 4 Индексированное поле. Нет |
Коробка передач |
Текстовый |
Автоматическая или ручная |
Размер поля .................... 15 Знач. по умолчанию...... Ручная Условие на знач.............. "Ручная" or "Автоматика" Сообщение об ошибке.. Допустимы только значения "Ручная" или "Автоматика" Индексированное поле. Нет |
Обивка |
Текстовый |
Кожа, велюр или другая ткань |
Размер поля .................... 20 Индексированное поле. Нет |
Другое оснащение |
Поле МЕМО |
Дополнительные аксессуары |
Для поля МЕМО никаких ограничений не устанавливается |
Заводская цена |
Денежный |
Цена завода изготовителя |
Формат ............................. Денежный Число десят. зн................ Авто Индексированное поле. Нет |
Транспортные издержки |
Денежный |
Расходы на доставку |
Формат ............................. Денежный Число десят. зн................ Авто Индексированное поле. Нет |
Предпродажная подготовка |
Денежный |
Расходы на предпродажную подготовку |
Формат ............................. Денежный Число десят. зн................ Авто Знач. по умолчанию...... 105 Индексированное поле. Нет |
Специальная модель |
Логический |
Специальная модель или стандартное исполнение |
Формат ............................. Да/Нет
|
Установите поле [Код модели] в качестве ключевого. Закройте таблицу, сохранив изменения и задав ей имя.
- Отредактируем проект таблицы «Модели»:
a) Создайте копию таблицы «Модели» с озаглавив ее «Модели резервная копия» с помощью команды Файл -Сохранить как/экспорт или через Правка - Копировать, Вставить(обычно при редактировании проект а таблицы этот шаг не является обязательным);
b) Выберите режим конструктор для таблицы «Модели»
c) Поскольку в поле [Коробка передач] вводится только одно из двух значений, нецелесообразно делать это вручную. Выберем Тип данных - Мастер подстановок- будет введен фиксированный набор значений – число столбцов 1 – введем (без кавычек) в 1ю строку столбца “Ручная” во 2ю “Автоматика” (Раздел Подстановка свойств поля [Коробка передач] заполнен мастером автоматически, т.к. других модификаций коробки передач не предвидится, установите свойство: Ограничится списком - Да)
- Заполним нашу таблицу данными (кнопка Открыть).
Поле |
Значение |
Запись 1 |
|
Код модели |
12579 |
Модель |
Corolla LiftbackXL |
Мощность двигателя |
53/75 |
Цвет |
Красный торнадо |
Количество дверей |
4 (установлено по умолчанию) |
Коробка передач |
Ручная (установлено по умолчанию) |
Обивка |
Ткань |
Другое оснащение |
Автомагнитола, раздвижная крыша |
Заводская цена |
35700 |
Транспортные издержки |
950 |
Предпродажная подготовка |
105 |
Специальная модель |
Нет |
Запись 2 |
|
Код модели |
12580 |
Модель |
Corolla LiftbackGT |
Мощность двигателя |
69/90 |
Цвет |
Бутылочное стекло |
Количество дверей |
4 |
Коробка передач |
Автоматика |
Обивка |
Ткань |
Другое оснащение |
Автомагнитола, раздвижная крыша, лаковое покрытие «металлик» |
Заводская цена |
39200 |
Транспортные издержки |
1200 |
Предпродажная подготовка |
105 |
Специальная модель |
Нет |
Запись 3 |
|
Код модели |
12653 |
Модель |
Corolla CompactGT |
Мощность двигателя |
100/139 |
Цвет |
Черный |
Количество дверей |
2 |
Коробка передач |
Ручная |
Обивка |
Кожа |
Другое оснащение |
Автомагнитола, раздвижная крыша, лаковое покрытие «металлик», алюминиевые «дворники», электроподъемник окон |
Заводская цена |
41100 |
Транспортные издержки |
975 |
Предпродажная подготовка |
105 |
Специальная модель |
Да |
Запись 4 |
|
Код модели |
12651 |
Модель |
Corolla CompactXL |
Мощность двигателя |
90/135 |
Цвет |
Небесно-голубой |
Количество дверей |
2 |
Коробка передач |
Ручная |
Обивка |
Велюр |
Другое оснащение |
Раздвижная крыша, электроподъемник окон |
Заводская цена |
37900 |
Транспортные издержки |
1050 |
Предпродажная подготовка |
105 |
Специальная модель |
Да |
Запись 5 |
|
Код модели |
12410 |
Модель |
Corolla Kombi |
Мощность двигателя |
60/90 |
Цвет |
Антрацитовый |
Количество дверей |
4 |
Коробка передач |
Автоматика |
Обивка |
Ткань |
Другое оснащение |
Навесной багажник, раздвижная крыша, электроподъемник окон |
Заводская цена |
46200 |
Транспортные издержки |
1150 |
Предпродажная подготовка |
105 |
Специальная модель |
Нет |
- Создадим таблицу «Клиенты»
Поле |
Тип |
Параметры |
Код модели |
Числовой |
Размер поля .................... Длинное целое Формат ............................. Основной Число десят. зн................ 0 Обязательное поле......... Да Индексированное поле. Да(допускаются совпадения) |
Номер заказа |
Числовой |
Размер поля .................... Длинное целое Формат ............................. Основной Число десят. зн................ 0 Обязательное поле......... Да Индексированное поле. Да(совпадения не допускаются) |
Обращение |
Текстовый |
Подстановка:................... “Господину”, ”Госпоже” (см. задание 3.с) |
Имя, отчество |
Текстовый |
Размер поля .................... 40 Индексированное поле. Нет |
Фамилия |
Текстовый |
Размер поля .................... 30 Индексированное поле. Нет |
Почтовый адрес |
Текстовый |
Размер поля .................... 40 Индексированное поле. Нет |
Почтовый индекс |
Числовой |
Размер поля .................... Длинное целое Формат ............................. Основной Число десят. зн................ 0 Индексированное поле. Да(допускаются совпадения) |
Населенный пункт |
Текстовый |
Размер поля .................... 40 Индексированное поле. Нет |
Телефон |
Текстовый |
Размер поля .................... 20 Индексированное поле. Нет |
Дата заказа |
Дата/время |
Формат ............................. Краткий формат даты Индексированное поле. Да(допускаются совпадения) |
Скидка |
Числовой |
Размер поля .................... С плавающей точкой (8 байтов) Формат.............................. Процентный Число десят. зн................ 0 Индексированное поле. Нет |
Описание поля можно оставить незаполненным или заполнить по своему усмотрению.
Поле [Номер заказа] объявите полем первичного ключа (ключевым).
- Заполните таблицу клиенты: введите 7 произвольных клиентов, следя затем, чтобы номера моделей совпадали с номерами в базе модели.
- Установим связь между таблицами «Модели» и «Клиенты» (обратите внимание, что это можно было сделать уже на этапе проектирования таблицы «клиенты», если бы в поле [Код модели] мы использовали подстановку из таблицы модели, однако мы сделаем это позже, чтобы получить навыки, как в связывании существующих таблиц, так и в их редактировании).
a) Установка связи производится через команду Сервис – Схема данных.
b) В окне Схема данных добавим последовательно таблицы «Модели» и «Клиенты» с помощью команды Связи – Добавить таблицу или кнопки Добавить таблицу на панели инструментов. Закроем окно Добавление таблицы.
c) Переместим используемое для связи поле (ключевое поле [Код модели] таблицы «Модели») к соответствующему полю другой таблицы (поле [Код модели] таблицы «Клиенты») с помощью мыши.
d) Установим параметры связи: включим Обеспечение целостности данных - это исключит ошибки ввода данных в таблице «клиенты» (отсутствующие модели), и ошибки удаления данных (удаление моделей из таблицы «модели» на которые имеются ссылки).
- Отредактируем таблицу «Клиенты» таким образом чтобы [Код модели] можно было выбирать из списка.
a) В окне базы данных включим для таблицы «Клиенты» режим Конструктор.
b) В колонке Тип данных поля [Код модели] выберем Мастер подстановок
c) В Мастере подстановок выполните следующие установки: Столбец подстановки использует значения из таблицы или запроса – Далее – Таблицы, Модели – Далее – Выбранные поля: Модель(Ключевое поле [Код модели] будет присоединено к списку автоматически) – Далее – отключить Скрыть ключевой столбец – Далее – Доступные поля: Код модели – Готово.
Если все было выполнено правильно, при заполнении поля [Код модели] таблицы «Клиенты» в списке должно отображаться 2 столбца(код и название модели).
- Добавим еще 5 клиентов (произвольных) в таблицу клиенты.
Часть 2. Проектирование запросов.
- Создадим запрос с именем “телефоны клиентов” который покажет нам содержимое следующих полей:
- [Модель] из таблицы «Модели»
- [Имя, отчество] из таблицы «Клиенты»
- [Фамилия]
- [Телефон]
- [Дата заказа]
Для этого в Окне базы данных выберем вкладку Запросы кнопку Создать, в диалоговом окне Новый запрос – Конструктор, добавим в запрос обе таблицы («Модели» и «Клиенты», используем окно Добавление таблицы), и соответствующие поля из этих таблиц (можно перетащить «мышью» или выбрать из списка).
- Выполним запрос. (Открыть на вкладке Запросы Окна базы данных; Восклицательный знак на панели инструментов Конструктор запросов; Запуск из меню Запрос; Режим таблицы меню Вид)
- Создайте копию запроса “телефоны клиентов” с именем “телефоны клиентов сортировка”. Отредактируем запрос таким образом чтобы:
a) результат был отсортирован по Фамилиям клиента, выполним запрос.
b) результат был отсортирован по Дате заказа, выполним запрос.
Используем строку Сортировка в соответствующем поле конструктора запроса.
- Создайте копию запроса “телефоны клиентов” с именем “телефоны клиентов модель Corolla LiftbackXL ” и “телефоны клиентов заказы после 1.9.1999 ”. Установим критерии отбора в этих запросах (Строка Условие отбора в соответствующем поле конструктора запроса)
a) Модель: =”Corolla LiftbackXL”, при выполнении этого запроса отключите отображение поля [Модель]
b) Дата заказа: >#1.9.1999#
- Создадим запросы аналогичные запросам из предыдущего задания, но название модели и дата заказа по которым отбираются клиенты будут запрошены в ходе выполнения запроса. Назовем их “телефоны клиентов по моделям” и “телефоны клиентов по дате заказа”. В строке Условие отбора, в этом случае, записывается текст вопроса в квадратных скобках. (Например: [Укажите модель] или [Укажите дату], текст вопроса не должен совпадать с именем поля в таблице.) Выполните эти запросы.
- 6. Создадим запрос “Отпускная цена” в котором будет рассчитываться Отпускная цена соответствующей модели. Для этого нам потребуется добавить в запрос только 1 таблицу «Модели», затем поле [Модели] а в следующем (пустом) столбце в строке Поле нажать кнопку Построитель на панели задач( или выбрать Построитель из контекстного меню), последовательно вставляем поля Заводская цена, Транспортные издержки, Предпродажная подготовка и знак “+” таким образом чтобы получилось выражение: [Модели]![ Заводская цена] + [Модели]![ Транспортные издержки] + [Модели]![ Предпродажная подготовка] в строке поле отобразится - Выражение1: [Модели]![ Заводская цена] + [Модели]![ Транспортные издержки] + [Модели]![ Предпродажная подготовка]. Замените Выражение1 на Отпускная цена, так чтобы конечное выражение выглядело - Отпускная цена: [Модели]![ Заводская цена] + [Модели]![ Транспортные издержки] + [Модели]![ Предпродажная подготовка]. Выполните запрос.
- Создадим запрос “Сумма по моделям”, в котором будут рассчитаны общие суммы продаж по каждой из моделей. Для этого нам потребуется добавить в запрос обе таблицы. Включим в запрос: поле [Модель] таблицы «Модели», поле [Код модели] таблицы «Клиенты», расчетное поле [Сумма] (рассчитывается так же, как Отпускная цена в предыдущем задании).
Для того чтобы нам стали доступны групповые операции выполняем команду Вид – Групповые операции или нажимаем кнопку å на панели инструментов. Устанавливаем в расчетном поле групповую операцию Sum, в остальных полях Групповая операция группировка. (Выражение в расчетном поле должно выглядеть следующим образом: Сумма: Sum([Модели]![ Заводская цена] + [Модели]![ Транспортные издержки] + [Модели]![ Предпродажная подготовка]).) Выполните запрос.
- Создадим перекрестный запрос “перекрестный запрос”, в котором в качестве заголовков столбцов будут указаны названия моделей, в качестве заголовков строк фамилии клиентов, рассчитываться в таблице будет сумма(как в 2х предыдущих заданиях). Для этого добавим в запрос обе таблицы. В меню Запрос активизируем Перекрестный, на бланке конструктора запроса появятся строки Групповая операция и Перекрестная таблица. Выберем поле [Фамилия] из таблицы «Клиенты» с операцией Группировка, как Заголовки строк; поле [Модель] из таблицы «Модели» с операцией Группировка, как Заголовки столбцов; поле Сумма: [Модели]![ Заводская цена] + [Модели]![ Транспортные издержки] + [Модели]![ Предпродажная подготовка] с операцией Sum, как Значение. Выполните запрос.
- В перекрестном запросе можно вычислить так же итоги по строкам. Скопируйте предыдущий запрос с именем “перекрестный запрос с итогами”, нам потребуется изменить структуру запроса: [Фамилия] - Заголовки столбцов, [Модель] - Заголовки строк, т.к каждый клиент встречается в базе 1 раз и сумма по строкам для предыдущего запроса не будет иметь смысла. Добавим еще один столбец в запрос: поле Итоговая сумма: [Модели]![ Заводская цена] + [Модели]![ Транспортные издержки] + [Модели]![ Предпродажная подготовка], операция Sum, как Заголовки строк. Выполните запрос.
- Создадим запрос на создание таблицы. Создайте запрос на выборку данных из таблицы «Клиенты» с условием [Дата заказа] < #1.1.2000#. Измените тип запроса (Запрос - Создание таблицы). Озаглавьте новую таблицу «Клиенты за пошлый год». Выполните запрос.
- Создадим запрос на удаление данных из таблицы. Скопируйте таблицу «Клиенты» с именем «Клиенты резервная». Создадим запрос на выборку данных из таблицы «Клиенты» с условием [Дата заказа] < #1.1.2000#. Измените тип запроса (Запрос - Удаление). Выполните запрос.
- Создадим запрос на добавление данных из таблицы «Клиенты за пошлый год» в таблицу «Клиенты». Создайте запрос на выборку данных из таблицы «Клиенты за пошлый год» (выберем все поля: Поле - Клиенты.*). Измените тип запроса (Запрос - Добавление) в открывшемся диалоговом окне укажите таблицу «Клиенты» к ней будут добавляться данные. В запросе появится строка, в которую автоматически(в нашем случае) или вручную(при несовпадении имен), можно добавить имена соответствующих полей целевой таблицы. Выполним запрос.
- Запрос на обновление. Предположим, что с 1.3.2000 изменились цены по каталогу. При корректировке таблицы «Модели» мы не сохраним информацию о реальной стоимости заказа выполненного до указанной даты, т.к. у нас не предусмотрено хранение суммы заказа. Решим эту задачу: Добавим в таблицу «Клиенты» поле [Сумма заказа], денежный. Заполним это поле с помощью запроса на обновление. Для этого добавим в запрос обе таблицы. В меню Запрос активизируем Обновление, на бланке конструктора запроса появится строка Обновление. Выберем поле [Сумма заказа] из таблицы «Клиенты» в строке обновление укажем формулу: [Модели]![ Заводская цена] + [Модели]![ Транспортные издержки] + [Модели]![ Предпродажная подготовка], выберем поле [Дата заказа] в строке Условие укажем <#1.3.2000#. Выполните запрос. Теперь изменим данные в таблице «Модели» (предварительно сохранив ее копию в таблице «модели до 1.3.2000») заполним поле [Сумма заказа] для заказов размещенных после 1.3.2000 с помощью запроса на обновление, изменив условие на >=#1.3.2000#.
Часть 3. Создание и редактирование форм.
- Создадим форму для работы с моделями. Для этого воспользуемся кнопкой Создать - Автоформа: в столбец на вкладке Формы, затем Конструктор для полученной формы.
Поле специальная модель вставляется с помощью элемента управления Флажок и описания его свойств.
- Создадим составную форму, с помощью которой можно будет посмотреть информацию об автомобилях и клиентах заказавших их.
Используем Формы – Создать – Мастер форм – Таблицы\запосы: Таблица:Модели – выбрать все поля (поле специальная модель можно не выбирать, а добавить при редактировании см. пред. задан.) - Таблица:Клиенты – поля: Обращение, Имя отчество, Фамилия, Почтовый адрес, Почтовый индекс, Населенный пункт, Номер договора, Дата заказа, Скидка. – Далее – по Модели – Подчиненные формы – Далее – вид подчиненной формы Табличный – Далее – Стиль – Обычный – Далее – Укажите имена форм – Заказы моделей Corolla – подчиненной: Клиенты подчиненной формы – откройте форму в режиме изменения макета, или после просмотра в режиме конструктора.
Измените компоновку формы, начертите линии и добавьте поле специальная модель. Ниже приведен пример полученной формы.
- Добавим на форму из предыдущего задания расчетное поле Общая цена. Для этого вставим Поле с панели инструментов Элементы управления, для свойства подпись укажем общая цена, формат Денежный, Данные =[ Заводская цена] +[ Транспортные издержки] +[ Предпродажная подготовка], обратите внимание, что в выражении могут быть использованы существующие поля из таблиц и форм (в данном случае удобнее использовать поля уже указанные в данной форме). Обратите внимание, что в следующем примере формы отсутствует поле номера записи для подчиненной формы, эту установку можно выполнить через свойства этой формы.
Часть 4. Создание и редактирование отчетов.
Создадим отчет по нашей базе, в котором отразим продажи по моделям и информацию о текущих ценах. Для начала рассмотрим назначение различных областей отчета:
v Заголовок отчета - расположен на первой странице перед верхним колонтитулом. В нашем случае в заголовке отчета разместим его название Обзор заказов и рисунок (фирменный логотип).
v Верхний колонтитул - помещается по умолчанию на каждую страницу отчета, его отображение на страницах содержащих шапку или резюме можно заблокировать. Обычно это названия столбцов. В нашем отчете Фамилия, Номер заказа и Дата заказа.
v Заголовок группы - состоит из имени группы. В нашем отчете Код модели.
v Область данных - элементы этой области повторяются для каждой выбранной из таблицы записи. В нашем отчете Фамилия, Номер заказа и Дата заказа.
v Примечание группы – появляется в конце группы записей. Применяется в основном для указания числа записей и сумм в полях группы. В нашем отчете укажем количество заказов по данной модели.
v Нижний колонтитул – присутствует на каждой странице отчета. Обычно используется для отображения номеров страниц. По умолчанию мастер отчетов помещает сюда функции =страница и =Now().
v Примечание отчета – вставляется в конце отчета (при печати предшествует колонтитулу последней страницы), может содержать резюме ко всему отчету. В нашем отчете разместим подотчет с информацией о текущих ценах.
Теперь приступим к созданию отчета:
- Создадим заготовку отчета с помощью мастера отчетов. Вкладка Отчеты окна базы данных - кнопка Создать. В окне Новый отчет: Мастер отчетов и источник Клиенты. В окне Создание отчетов из таблицы Клиенты выбрать поля Код модели, Фамилия, Дата заказа - Далее>, Уровень группировки - Код Модели – Далее>, Порядок сортировки – Фамилия – Далее>, Вид макета – Ступенчатый – Далее>, Стиль – Формальный – Далее>, Имя отчета –Обзор заказов – Готово. На экране - созданный вами отчет.
- Вставим в отчет фирменный знак. Создайте фирменный знак средствами Paint, Word или любыми другими, можно использовать готовый знак из текущего документа. Для вставки знака откройте отчет из окна базы данных с помощью кнопки Конструктор и вставьте знак через буфер обмена в область заголовка, таким образом, чтобы он не перекрывал заголовок.
- Дату создания отчета =Now() поместим из нижнего колонтитула в заголовок отчета.
- В нижний колонтитул добавим название фирмы. Для этого на Панели элементов (если она отсутствует на экране, включите ее через Вид – Панель инструментов) нажмите кнопку Надпись(на ней изображено Аа) и мышью разместите надпись в нижнем колонтитуле отчета. Введите в появившийся прямоугольник текст (например: Представительство фирмы Toyota).
- В разделе группировки (кнопка с изображением строк объединенных скобками) изменим свойства уже существующей группы по коду модели, добавив расчет количества записей по любому из столбцов (фамилия или дата заказа). Можно просто добавить расчетное Поле(кнопка ab) в область примечания группы (например: =count([Дата заказа])).
- Прежде чем встроить подотчет, содержащий информацию о ценах в основной отчет, его необходимо создать. Создайте на основе таблицы «Модели» заготовку подчиненного отчета «Информация о ценах», включив туда поля Код модели, Модель, Заводская цена, Предпродажная подготовка, Транспортные издержки. Уровни группировки задавать не нужно. Можно произвести сортировку по Коду модели или Модели. В режиме конструктора добавьте в верхний колонтитул надписьОтпускная цена, а в область данных вычисляемое поле Отпускная цена содержащее =[ Заводская цена] + [ Транспортные издержки] + [ Предпродажная подготовка]. Завершите работу с этим отчетом, сохранив изменения и озаглавив его «Информация о ценах».
- Встроим подотчет «Информация о ценах» в отчет «Обзор заказов», для этого достаточно просто перетащить его из окна базы данных в область примечания отчета «Обзор заказов» или воспользуйтесь панелью элементов.
- Просмотрите ваш отчет.
ЦЕНА 1500 РУБ.
РАБОТА БУДЕТ ИНДИВИДУАЛЬНОЙ. ГОТОВНОСТЬ - 1 ДЕНЬ