Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_po_Access_ZF18052010.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.31 Mб
Скачать

4 Пример выполнения контрольной работы

Задача. Три деревообрабатывающих предприятия поставляют MDF четырем мебельным фирмам. Таблица Предприятие имеет поля: Код предприятия, Название предприятия, Производительность в м2 (за месяц). Таблица Фирма имеет поля Код фирмы, Название фирмы, Ежемесячная потребность фирмы в MDF. Таблица Продажи имеет поля Код предприятия, Код фирмы, Количество проданного MDF фирме за месяц. Создать базу данных «Фирма» и ответить на запросы:

  1. Выдать список предприятий, которые продали MDF 1-й и 2-й фирмам, в каком количестве и на какую сумму.

  2. Выдать список предприятий, у которых осталось не проданной MDF в конце месяца, выдать количество остатка в м2.

Решение

    1. Создаем структуру базы данных. Проектируем таблицы, соблюдая правила нормализации, рисунок 42.

Таблица Предприятие

Таблица Фирма

Таблица Продажи

Код предприятия

Код фирмы

Код предприятия

Название предприятия

Название фирмы

Код фирмы

Производительность

Потребность

Количество

Цена за 1кв.м

Рисунок 42 – Структура таблиц базы данных

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

    1. Создаем таблицы в Microsoft Access. Запускаем программу Microsoft Access, в диалоговом окне отмечаем Новая БД, в следующем окне указываем папку и имя файла нашей базы данных – Фирма. Открывается окно базы данных, выбираем объект Таблицы. Выбираем режим создания таблицы, для этого 2 раза щелкаем по пункту Создание таблицы в режиме Конструктора. Сначала создаем таблицу Предприятие. Вводим имена полей, выбираем тип данных, размер поля, подпись поля. Для определения первичного ключа таблицы выделим поле КП, нажимаем на панели инструментов кнопку (ключевое поле), слева от имени поля должно появиться изображение ключа, см. рисунке 43. Имена полей таблиц следует сократить, а именно: Код предприятия на КП, Название предприятия на НП, Производительность на Произв. В таблице Фирма имена полей соответственно сократим так: Код фирмы на КФ, Название фирмы на НФ, Потребность.

Рисунок 43 - Таблица Предприятие в режиме конструктора

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

  1. Создаем схему данных. Это наглядное средство графического отображения логических связей таблиц базы данных.

  1. Открываем окно Схема данных. Для этого нажимаем кнопку на панели инструментов , или в главном меню выбираем пункт Сервис-Схема данных.

  2. В диалоговом окне Добавление таблицы выбираем вкладку Таблицы и кнопкой Добавить размещаем все 3 таблицы. Нажимаем на кнопку Закрыть.

  3. Устанавливаем связь между таблицами Предприятие и Продажи по ключу НП. Для этого в окне Схема данных устанавливаем курсор мыши на ключевом поле НП таблицы Предприятие и перетаскиваем это поле на поле НП таблицы Продажи.

  4. В открывшемся окне Изменение связей в строке Тип отношения установится один-ко-многим. Далее следует отметить флажки, обеспечивающие Целостность данных.

  5. Устанавливаем связь между таблицами Фирма и Продажи по ключу КФ. Для этого в окне Схема данных устанавливаем курсор мыши на ключевом поле КФ таблицы Фирма и перетаскиваем это поле на поле КФ таблицы Продажи.

  6. В открывшемся окне Изменение связей в строке Тип отношения установится один-ко-многим. Далее следует отметить флажки, обеспечивающие Целостность данных, рисунок 44.

Рисунок 44 - Сема данных базы данных Фирма

  1. Заполняем таблицы данными. Открываем таблицу Предприятие в режиме таблицы (2 раза мышью по названию таблицы в окне БД) и вводим записи. После окончания ввода сохраняем и закрываем таблицу. Таким же образом заполняем таблицы Фирма и Продажи рисунки 45,46,47.

Рисунок 45 - Таблица Предприятие

Рисунок 46 - Таблица Фирма

Рисунок 47 - Таблица Продажи

  1. Просмотр подчиненной таблицы из главной. В Access имеется возможность при просмотре записей главной таблицы отображать записи подчиненной таблицы. Посмотрим это на примере таблиц Предприятие и Продажи. Открываем таблицу Предприятие в режиме Таблица и мы видим, что она имеет самый крайний левый столбец с плюсами. Щелкните по значку «+» и отобразятся записи подчиненной таблицы Продажи, рисунок 48, при этом знак «+» меняется на «-».

Рисунок 48 - Отображение подчиненных записей в главной таблице

  1. Создаем 1-й запрос (Поставки 1-й и 2-й фирмам): выдать список предприятий, которые продали MDF 1-ой и 2-ой фирмам, в каком количестве и на какую сумму. Выполним следующие действия:

  1. в окне базы данных в списке объектов выбираем объект Запрос;

  2. дважды щелкнуть по значку Создание запроса в режиме конструктора;

  3. в появившемся окне Конструктора запросов, в окне Добавление таблицы, выделить таблицы Предприятие и Продажи и щелкнуть по кнопке Добавить, закрыть окно Добавление таблицы;

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

  5. в строке Условие отбора задаем критерии для отбора записей по полю КФ и записываем 1-е условие – 1Ф, а в строке Или записываем 2-е условие - 2Ф; После выполнении запроса Access сам записывает выражение “1Ф” or “2Ф”;

  6. чтобы вычислить на какую сумму было продано MDF каждым предприятием надо создать вычисляемое поле Сумма: [Предприятие]![Цена за 1квм]*[Продажи]![Колич]. Это поле создаем с помощью построителя, рисунок 49;

Рисунок 49 - Вычисляемое поле Сумма в построителе

    1. определяем сортировку по полю НП и по полю КФ, для этого в строке Сортировка отмечаем по возрастанию рисунок 50;

    2. Закрыть запрос и дать ему имя «Поставки 1-й и 2-й фирмам». Для выполнения запроса можно нажать на кнопку на панели инструментов , если он открыт в режиме конструктора, если надо открыть запрос в окне базы данных, то щелкнуть правой кнопкой мыши по названию запроса, далее выбрать пункт Открыть, рисунок 51.

Рисунок 50 - 1-й запрос в режиме конструктора

Рисунок 51 - Результат выполнения 1-го запроса

  1. Создаем 2-й запрос (Остаток): выдать список предприятий, у которых осталось не проданной MDF в конце месяца, указать количество остатка в м2 на каждом предприятии

Для выполнения этого запроса нужно выполнить промежуточный запрос «Продано продукции», т.е. вычислить сколько продукции продано каждым предприятием, а затем создать запрос «Остаток», т.е от количества произведенной продукции отнять количество проданной продукции. Для этого выполняем следующие действия:

  1. Создаем запрос Продано продукции. В окне базы данных в списке объектов выбираем объект Запрос;

  2. дважды щелкаем по значку Создание запроса в режиме конструктора;

  3. в появившемся окне Конструктора запросов, в окне Добавление таблицы, выделить таблицы Предприятие и Продажи и щелкнуть по кнопке Добавить, закрыть окно Добавление таблицы;

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

  5. нажать кнопку Групповые операции на панели инструментов, в поле Колич выбрать функцию Sum;

  6. закрыть запрос и дать ему имя Продано продукции рисунок 52;

  7. создаем запрос Остаток, для этого открываем Конструктор запросов, в окне Добавление таблицы, добавить таблицу Предприятие, открыть вкладку Запросы и добавить запрос Продано продукции, закрыть окно Добавление таблицы;

  8. соединить эти таблицы по полю НП (название предприятия), буксируя левой кнопкой мыши поле НП из таблицы Предприятие на поле НП таблицы Продано продукции.

  9. перетащить мышью из таблицы Предприятие поле НП в строку Поле, а второе поле Остаток будет вычисляемое: [Предприятие]![Производ]-[Продано продукции]![Sum-Колич] его надо создать в построителе.

  10. задать группировку, щелкнув по кнопке . Закрыть запрос и дать ему имя Остаток рисунок 53.

Рисунок 52 - Запрос Продано продукции в режиме конструктора

Рисунок 53 - Запрос Остаток в режиме конструктора

  1. Создаем форму.

Будем создавать многотабличную форму на основе таблиц Предприятие, Фирма и Продажи. Для этого выполняем следующие действия:

  1. на панели объектов выбрать объект Формы, щелкнуть по кнопке Создать;

  2. в появившемся окне Новая форма выбрать режим создания Мастер форм и таблицу Предприятие – источник записей для основной части создаваемой формы, щелкнуть по кнопке Ok; запустится Мастер;

  3. выбрать поле НП из таблицы Предприятие и переместить его с помощью кнопки «>» в область Выбранные;

  4. в этом же окне выбрать из списка Таблицы и Запросы таблицу Фирма и переместить из нее поля КФ, НФ, далее выбрать таблицу Продажи и переместить поле Колич;

  5. в следующем окне выбрать вариант отображения подчиненной формы (переключатель Подчиненные формы), щелкнуть по кнопке Далее;

  6. в следующем окне выбрать вид подчиненной формы, кнопка Далее;

  7. ввести имена составной формы и подчиненной, кнопка Готово;