Разработка базы данных точки проката дисков

Автор: Пользователь скрыл имя, 16 Июля 2015 в 01:43, курсовая работа

Краткое описание

Цель данного курсового проекта: на основе программы Microsoft Access разработатьбазу данных точки проката дисков (различного содержания), отражающую данные о наличии, поставке, покупке и прокате дисков, которые, в свою очередь, распределены по четырем категориям: «Игры», «Фильмы», «Музыка», «Программы. Также основной целью проекта является автоматизация разработанной базы данных путём построения форм, запросов, внедрения макросов и кодов VBA. Отдельно вынесено создание различных пользователей системы и отдельных прав для каждого из них.

Оглавление

ВВЕДЕНИЕ 3
ГЛАВА 1 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ. 5
ГЛАВА 2 ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫX 9
2.1 Проектирование приложения 9
2.2. Разработка пользовательского интерфейса и описание приложения 15
2.3. Автоматизация приложения 25
ВЫВОДЫ 38
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 39

Файлы: 1 файл

курсач.docx

— 2.98 Мб (Скачать)

Стандартно права между пользователями распространяются следующим образом:

Таблица 2.1 – Права пользователей

Оператор:

Администратор:

Покупатель:

Пароль

1234

 

Запрос пароля

Да

Нет

Список клиентов

Да

Нет

Покупка

Да

Да

Прокат

Да

Нет

Редактирование

Да

Нет

Администратор

Да

Нет

Оценка диска

Да

Да

Печать

Да

Да

Фильмы

Да

Да

Программы

Да

Да

Музыка

Да

Да

Игры

Да

Да

О программе

Да

Да


 

 

Рисунок 2.10 –  Таблица Поставщики в режиме конструктора

Таблица Поставщики содержит информацию о поставщиках организации.

 

Рисунок 2.11 –  Таблица Прейскурант в режиме конструктора

Таблица отражает цену проката, цену просрочки для каждого типа диска.

Рисунок 2.12 –  Таблица Прокат в режиме конструктора

Данная таблица отражает данные по прокату дисков.

Далее производим связывание таблиц (для создания некоторого рода подчиненности между ними).

Рисунок  2.13 –  Схема данных базы точки проката дисков

Как видно на схеме, не все таблицы связаны друг с другом, но это не указывает на то, что данные не связанные таблицы не влияют на содержание базы данных. Как упоминалось ранее, поля в некоторых таблицах определяются через подстановку. Собственно данные для подстановки берутся из указанных выше таблиц. Таким образом, можно сказать, что в базе выделяется ряд «вспомогательных» таблиц: 1а)Тип диска, 2а)3а)4а)5а) – распределение по жанрам, Операции, для_поиска, обновление_главной и др.

В таблице 2.1 представлены, имеющиеся в некоторых поля подстановки.

 

 

 

 

 

 

 

 

 

Таблица 2.1  - Подстановки

Таблица

Поле

Подстановка

1а)Главная

Тип диска (поле со списком)

SELECT [1а)Тип диска].[Тип диска] FROM [1а)Тип диска];

2), 3), 4), 5)

Код диска (поле со списком)

SELECT [1)Главная].[Код диска], [1)Главная].[Название диска] FROM [1)Главная] INNER JOIN [1а)Тип диска] ON [1)Главная].[Тип диска] = [1а)Тип диска].[Тип диска] WHERE ((([1а)Тип диска].[Код типа диска])=[значение от 1 до 4, в зависимости от категории диска]));

2), 3), 4), 5)

Жанр (список)

Источник записей: 2а) – 5а)Жанры

Архив операций

Название диска (поле со списком)

SELECT [1)Главная].[Название диска] FROM [1)Главная];

Пользователи

Поля с правами (список значений)

Да/Нет


Использование подстановок значительно упрощает ввод информации, если надо сделать выбор из какого-то списка значений.

2.2. Разработка пользовательского  интерфейса и описание приложения

Готовая база данных должна представлять собой меню с кнопками перехода в подменю, а именно: информация о контенте, информация об учетной записи пользователя, ввод/удаление данных, отчёты по базе, таблицы и кнопка выхода. Каждая кнопка (кроме «выход») открывает своё подменю с другими кнопками, функции которых, в свою очередь, относятся к новому открытому окну.

Рисунок 2.14 – Окно приветствия

Конструирование экранных форм для работы с данными

После окна приветствия автоматически запускается форма Выбор пользователя:

 Рисунок 2.16 – Форма Выбор пользователя

Если был выбран пользователь «Администратор» или «Оператор ПК», то открывается форма «пароль», в которую нужно ввести пароль админа или оператора (1234 или 0000).

Рисунок 2.17 – Форма Пароль

Если пароль был введен правильно, то открывается форма Кнопочная_форма, которая представляет собой главное окно программы, и на которой, соответственно, располагаются все кнопки. При ошибочном вводе пароля выводится сообщение об ошибке: «Неверно. Попробуйте еще раз!». Анализ пользователя и пароля реализуется через использование макросов (см. далее).

Согласно прописанной политике прав доступа, у разных пользователей будет отражаться разный набор кнопок: администратор – все, оператор – все, кроме «Ввод данных», покупатель – только перечни дисков.

Рисунок 2.18 – Главное меню

Далее, рассмотрим все подменю, относящиеся к главному меню администратора.

Рисунок 2.19 – подменю Учетные записи пользователя

В подменю Учетные записи пользователя отражаются все записи о пользователях и отведенные им права. Имеется возможность введения нового пользователя.

Рисунок 2.20 – подменю «Ввод данных»

В подменю «Ввод данных» осуществляется просмотр же имеющихся данных и ввод новых. При нажатии кнопки «Ок» рядом с полем «Поставка» открывается форма «Поставщики» (рис. 2.21) для выбора поставщика, который осуществил данную поставку. Обложка диска вставляется в поле OLE через нажатие правой кнопки мышки и выбора опции «Вставить объект». При нажатии кнопки «Описание диска» открывается подчиненная форма «Описание» для выбранной категории диска (рис. 2.22). При нажатии кнопки «Главная таблица» открывается таблица 1а)Главная (каталог всех имеющихся дисков). Кнопка «Архив операций» открывает ленточную форму «Архив операций» (рис. 2.23), которая отражает все проведенные операции, имеет кнопку «Создание отчета», нажатие которой выведет отчет по все проведенным операциям (рис. 2.24). Кнопка «Назад» осуществляет возвращение к Главному меню.

Рисунок 2.21 – подменю «Поставщики»

Рисунок 2.22 – подменю «Описание»

Рисунок 2.23 – форма «Архив операций»

Рисунок 2.24 – отчет «Архив операций»

В отчете «Архив операций» предоставлена информация о операциях, проведенных с диском, которые сортируются по коду диска.

В подменю «Клиенты» (рис. 2.25) отражается информация о клиентах и проведенных ими операциях. Также рассчитывается стоимость проката (с учетом просроченности по дате возврата диска). Имеется возможность ввода данных нового клиента.

Кнопки «Фильмы», «Игры», «Музыка», «Программы» открывают соответствующие подменю по каждой категории с перечнем дисков (рис. 2.26).

При нажатии кнопки «Подробнее» в подменю «Перечень фильмов» открывается подробная информация о фильме (рис. 2.27)[содержит подчиненную форму], с возможностями оценки, покупки, проката, и печати информации (формируется отчет с данными фильма, игры, альбома или программы – рис. 2.28).

Рисунок 2.25 – подменю «Клиенты»

Рисунок 2.26 – подменю «Перечень фильмов»

Рисунок 2.27 – подменю «Описание»

 

Рисунок 2.28 – отчет «Информация о диске»

Фактически, на данном этапе рассмотрены все меню и подменю. Для других пользователей они имеют такую же структуру и содержание. Последнее подменю относится к покупке диска (рис. 2.29). Можно внести данные о новом клиенте (администратор) или выбрать из списка имеющихся клиентов (сам клиент).

Рисунок 2.29 – подменю «Покупка диска»

Все формы имеют кнопки работы с записями «Перейти к следующей/предыдущей», «Перейти к созданию новой записи», «Перейти в начало/конец», «Поиск», «Удалить», «Выход». Данные кнопки имеют интуитивно понятное оформление и упрощают работу с приложением.

Разработка запросов к базе данных

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

Таблица 2.3 – Запросы

Название запроса

Запрос

Смысл

Фильмы/игры и др.

SELECT [1а)Тип диска].[Код типа диска], [1)Главная].*, [Поиск повторений для 3)Фильмы].[кол-во на диске]

FROM [Поиск повторений  для 3)Фильмы] INNER JOIN ([1)Главная] LEFT JOIN [1а)Тип диска] ON [1)Главная].[Тип диска] = [1а)Тип диска].[Тип диска]) ON [Поиск повторений для 3)Фильмы].[Код диска поле] = [1)Главная].[Код диска]

WHERE ((([1а)Тип диска].[Код типа диска])=1));

Вывод определенной категории дисков (для отчета).

Поиск повторений

SELECT First([2)Игры].[Код диска]) AS [Код диска поле], Count([2)Игры].[Код диска]) AS [кол-во на диске]

FROM [2)Игры]

GROUP BY [2)Игры].[Код диска];

Проверяет наличие повторений названий дисков для разных кодов счетчика.

4_Возврат диска 

INSERT INTO [Архив операций] ( [Код диска], [Код  операции], Наименование, [Название  диска], Клиент, [Тип диска], [+/-], Дата_поставки )

SELECT [1)Главная].[Код  диска], Операции.[Код операции], Операции.наименование, [1)Главная].[Название диска], Клиенты.ФИО, [1)Главная].[Тип диска], 1 AS Выражение1, Now() AS Дата_поставки

FROM [1)Главная], Операции, Клиенты

WHERE ((([1)Главная].[Код диска])=[Forms]![Клиенты]![прокат].[Form]![kodd]) AND ((Операции.[Код операции])=3) AND ((Клиенты.[Код клиента])=[Forms]![Клиенты]![Код клиента2]));

Добавляет запись в архив операций о возврате диска. Все запросы с кодом 4 осуществляют добавление записей в архив операций и имеют аналогичный набор инструкций.


 

 

Продолжение Таблицы 2.3

Название запроса

Запрос

Смысл

Диски на руках

SELECT Прокат.[Код клиента], Прокат.[Код диска], [1)Главная].[Название диска], [1)Главная].[Тип диска], [1)Главная].Стоимость, Прокат.[Сто-тьпрокатадн], ([Дата возврата]-[Дата выдачи])*[Сто-тьпрокатадн] AS [Сто-тьпроката], Прокат.[Дата выдачи], Прокат.[Дата возврата], IIf((DateValue(Now())-[Дата выдачи])-([Дата возврата]-[Дата выдачи])>0,(DateValue(Now())-[Дата выдачи])-([Дата возврата]-[Дата выдачи]),0) AS Просрочка, [Сто-тьпросрочкидн]*[Просрочка] AS Пени, [Сто-тьпроката]+[Пени] AS Итого, Прокат.[Сто-тьпросрочкидн], Клиенты.ФИО, Клиенты.Телефон, Клиенты.[Электронная почта]

FROM [1)Главная] INNER JOIN (Клиенты INNER JOIN Прокат ON Клиенты.[Код клиента] = Прокат.[Код клиента]) ON [1)Главная].[Код диска] = Прокат.[Код диска]

WHERE (((Прокат.[Когда отдан]) Is Null));

Выводит данные по прокату дисков, которые в настоящее время находятся у клиента на руках.

Должники

SELECT Прокат.[Код клиента], Прокат.[Код диска], [1)Главная].[Название диска], [1)Главная].[Тип диска], [1)Главная].Стоимость, Прокат.[Сто-тьпрокатадн], ([Дата возврата]-[Дата выдачи])*[Сто-тьпрокатадн] AS [Сто-тьпроката], Прокат.[Дата выдачи], Прокат.[Дата возврата], IIf((DateValue(Now())-[Дата выдачи])-([Дата возврата]-[Дата выдачи])>0,(DateValue(Now())-[Дата выдачи])-([Дата возврата]-[Дата выдачи]),0) AS Просрочка, [Сто-тьпросрочкидн]*[Просрочка] AS Пени, [Сто-тьпроката]+[Пени] AS Итого, Прокат.[Сто-тьпросрочкидн], Клиенты.ФИО, Клиенты.Телефон, Клиенты.[Электронная почта]

FROM Клиенты INNER JOIN ([1)Главная] INNER JOIN Прокат ON [1)Главная].[Код диска] = Прокат.[Код диска]) ON Клиенты.[Код клиента] = Прокат.[Код клиента]

WHERE (((Прокат.[Когда отдан]) Is Null));

Выводи информацию по прокату у клиентов, которые просрочили возврат диска

Обновление 3, 31, 4, поставка

UPDATE [обновление главной] INNER JOIN [1)Главная] ON [обновление главной].[Код диска] = [1)Главная].[Код диска] SET [1)Главная].[Кол-во] = [Кол-во]+[обновление главной]![Sum-+/-]+[обновление главной]![Sum-Признак расчета], [1)Главная].Покупок = [обновление главной]![Sum-Покупки];

Данные запросы выполняют обновление количества дисков по разным операциям – поставка, покупка, оценка, вычисление рейтинга. Имеют аналогичный набор команд.


 

Окончание Таблицы 2.3

Название запроса

Запрос

Смысл

Обновление 1, удаление записей должников

DELETE [обновление главной].*

FROM [обновление  главной];

Представляют собой запросы на удаление данных (прикреплены к кнопкам)


 

2.3. Автоматизация приложения

Средства макропрограммирования в MS Access

 

Access, как и любая другая развитая программная система, обладает средствами разработки программных приложений, ориентированных на конечных пользователей. Эти средства базируются на инструментах двух типов: макросах и модулях. Само понятие макроса подразумевает наличие набора некоторых стандартных команд системы, или макрокоманд (допустим, таких, как открытие формы, выполнение запроса, вывод отчета), из которых и конструируется сам макрос.

Макрос может быть как собственно макросом, состоящим из последовательности макрокоманд, так и группой макросов. Группой макросов называют их набор, сохраняемый под общим именем. В некоторых случаях для решения, должна ли в запущенном макросе выполняться определенная макрокоманда, может применяться условное выражение.[4]

В данной работе макросы используются для анализа выбранного пользователя, анализа пароля и обновление главной страницы (при нажатии кнопок) [Рис. 2.30 - 2.33].

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

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

 

Рисунок 2.30– макрос «Анализ пользователя (покупатель)»

 

Рисунок  2.31– макрос «Анализ пользователя (администратор)»

 

 

 

 

 

 

 

 

Рисунок 2.32 – макрос Анализ пароля пользователя (в виде свернутых макрокоманд)

Рисунок 2.33 – макрос «Обновление главной» (привязан к кнопкам)

Разработка программных приложений для MS Access

Для реализации приложения с точки зрения программирования используется такой язык программирования, как VBA.

Visual Basic for Applications (VBA, Visual Basic для приложений) — немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office.[6]

В данном проекте использование VBA проявляется в написании процедур обработки событий при нажатии определенных кнопок на форме.

Как упоминалось ранее все кнопки имеют интуитивно понятный интерфейс и уникальное (для выполняемого действия) изображение.

Далее представлены коды кнопок, которые расположены на основных формах меню и подменю.

  1. Форма «Выбор пользователя» - кнопка «Ок» и «Отмена»

 

Option Compare Database

Информация о работе Разработка базы данных точки проката дисков