Автор работы: Пользователь скрыл имя, 07 Мая 2011 в 11:32, курсовая работа
В базе данных сведения из каждого источника сохраняются в отдельной таблице. При работе с данными из нескольких таблиц устанавливаются связи между таблицами. Для поиска и отбора данных, удовлетворяющих определенным условиям, создается запрос. Запросы позволяют также обновить или удалить одновременно несколько записей, выполнить встроенные или специальные вычисления. Для просмотра, ввода или изменения данных прямо в таблице применяются формы.
Введение 3
Постановка задачи 4
Перечень решаемых задач 5
Проектирование баз данных 6
Общие сведения о таблицах 8
Запросы и их применение 14
Общие сведения о формах 21
Общие сведения об отчетах 28
Разработка программных расширений для БД: макросы и модули 30
Разработка системы защиты данных, прав и ограничений по доступу 34
Заключение 35
Список использованной литературы 36
В связи с поставленной задачей в базе данных созданы следующие таблицы:
Таблица «Банки»
создана для автоматического
ввода в отчеты «Товарная накладная»
и «Счет-фактура» названий и адресов
банков, через которые производятся
финансовые операции между фирмой, заказчиками
и поставщиками.
В таблице «Дети» хранится необходимая информация о детях сотрудников.
В таблицах установлены маски ввода на номера телефонов и факсов
Таблица «Договор» содержит информацию о договорах на покупку автомобилей, в состав которой входит номер счет-фактуры (после заключения договора отсылается в банк заказчика на оплату)
Компания работает
как с физическими, так и с
юридическими лицами, потому в таблицу
«Поставщик» введены реквизиты и фирмы-заказчика
(УНН, ФИО бухгалтера, ФИО директора, ОКЮЛП),
и отдельного покупателя (расчетный счет),
которые являются необязательными для
заполнения
В представленной базе данных учтены приказы о зачислении, увольнении, поощрении и наказании. Для их хранения создана отдельная таблица «Приказы». На основе приказа о зачислении в базе данных релизован учет юбилейных дат работы.
В таблице «Приход»
используется логический тип данных
в поле «Дата оплаты», так как
оплата может производиться позже отгрузки
товаров. Это поле имеет существенное
значении при определении расходов и прибыли
компании.
Таблица «СП» связывает таблицы «Сотрудники» и «Приказы», так как на одного сотрудника может приходиться несколько приказов, и один приказ может быть адресован нескольким сотрудникам.
Поле «ПроцЗп»
введено в таблицу «Сотрудники»
Таблица «Фирма» содержит всю информацию компании, для которой разрабатывается приложение
Поля «Оплачено» и «Дата_оплаты» используются при подсчете заработной платы, так как оплата продукции может производиться не в день оформления заказа, а в заработную плату включаются только оплаченные заказы.
Связи между
таблицами отображены на схеме данных
Запросы
и их применение
С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются в качестве источника данных для форм и отчетов.
Наиболее часто используется запрос на выборку. При его выполнении данные, удовлетворяющие условиям отбора, выбираются из одной или нескольких таблиц и выводятся в определенном порядке.
Зарпос
можно создать с помощью
В представленной базе данных использовано 47 запросов. Ниже приведен список самых основных запросов
1) q_ЗП_с_учетом_приказа
SELECT [ЗП_месяц_%].КдСтр,
[ЗП_месяц_%].ФИО, [ЗП_месяц_%]!Зарплата+q_сумма_
FROM ([ЗП_месяц_%] INNER JOIN Сотрудники ON [ЗП_месяц_%].КдСтр = Сотрудники.КдСтр) INNER JOIN q_сумма_док_ЗП ON (Сотрудники.КдСтр = q_сумма_док_ЗП.КдСтр) AND ([ЗП_месяц_%].Месяц = q_сумма_док_ЗП.Месяц)
GROUP BY
[ЗП_месяц_%].КдСтр, [ЗП_месяц_%].ФИО, [ЗП_месяц_%]!Зарплата+q_сумма_
2) q_окончательная_ЗП_%
SELECT [ЗП_месяц_%].КдСтр, [ЗП_месяц_%].ФИО, [ЗП_месяц_%].Зарплата, q_ЗП_с_учетом_приказа.ЗП AS [ЗП с учетом приказов], [ЗП_месяц_%].Месяц
FROM q_ЗП_с_учетом_приказа
RIGHT JOIN [ЗП_месяц_%] ON q_ЗП_с_учетом_приказа.КдСтр
= [ЗП_месяц_%].КдСтр;
3) q_связь_ЗП
SELECT [ЗП_месяц_%].КдСтр, [ЗП_месяц_%].ФИО, [ЗП_месяц_%].Зарплата, q_ЗП_с_учетом_приказа.ЗП AS [ЗП с учетом приказов], [ЗП_месяц_%].Месяц
FROM q_ЗП_с_учетом_приказа
RIGHT JOIN [ЗП_месяц_%] ON q_ЗП_с_учетом_приказа.КдСтр
= [ЗП_месяц_%].КдСтр;
5) В_наличии
SELECT Сумма_приход_в_наличии.КдТов,
Сумма_приход_в_наличии.
FROM Сумма_заказов_в_наличии INNER JOIN Сумма_приход_в_наличии ON Сумма_заказов_в_наличии.КдТов = Сумма_приход_в_наличии.КдТов
GROUP BY
Сумма_приход_в_наличии.КдТов,
ORDER BY Сумма_приход_в_наличии.КдТов;
6)В_наличии_для_заказа
SELECT Приход.КдПрх,
Сумма_приход_в_наличии.
FROM (Сумма_заказов_в_наличии INNER JOIN Сумма_приход_в_наличии ON Сумма_заказов_в_наличии.КдТов = Сумма_приход_в_наличии.КдТов) INNER JOIN Приход ON Сумма_заказов_в_наличии.КдТов = Приход.КдТов
GROUP BY
Приход.КдПрх, Сумма_приход_в_
7) Дни_рождения_сотрудников
SELECT Month([Дата_рождения])
AS М, Day([Дата_рождения]) AS Д, Year([Дата_рождения])
AS Г, Year(Now())-Year([Дата_
FROM Сотрудники LEFT JOIN уволенные_сотрудники ON Сотрудники.КдСтр = уволенные_сотрудники.КдСтр
WHERE (((уволенные_сотрудники.Дата) Is Null))
ORDER BY
Month([Дата_рождения]), Day([Дата_рождения]),
Сотрудники.Ф, Сотрудники.И, Сотрудники.О;
8)Обработка_приказов
SELECT Приказы.Наименование,
Сотрудники.Ф, Сотрудники.И,
FROM Сотрудники INNER JOIN (Приказы INNER JOIN СП ON Приказы.КдДок = СП.КдДок) ON Сотрудники.КдСтр = СП.КодСтр
WHERE (((Приказы.Номер)=[Введите
номер приказа]));
9) Обшие_сведения_клиенты
SELECT Заказчик.Заказчик,
Заказчик.ФИО_директора,
FROM Заказчик
ORDER BY
Заказчик.КдЗак;
10) Прибыль
SELECT Прибыль_Доход!Выражение1-
FROM (Прибыль_Расходы
INNER JOIN Прибыль_ЗП ON Прибыль_Расходы.Выражение2
= Прибыль_ЗП.Выражение1) INNER JOIN Прибыль_Доход
ON Прибыль_ЗП.Выражение1 = Прибыль_Доход.Expr1001;
11)Прибыль_Доход
SELECT Sum(Заказы!Кол*Заказы!Цена-
FROM Товар INNER JOIN (Приход INNER JOIN Заказы ON Приход.КдПрх = Заказы.КдПрх) ON Товар.КдТов = Приход.КдТов
GROUP BY
Format(Заказы!Дата,"mmmm\/
HAVING (((Format([Заказы]![Дата],"
12) Прибыль_Расходы
SELECT Sum(Приход!Кол*Приход!Цена) AS Выражение1, Format([Дата],"mmmm\/yyyy") AS Выражение2
FROM Приход
GROUP BY Format([Дата],"mmmm\/yyyy")
HAVING (((Format([Дата],"mmmm\/yyyy")
13) Приказ
SELECT Сотрудники!Ф & " " & Left(Сотрудники!И,1) & "." & Left(Сотрудники!О,1) & "." AS ФИО, Приказы.Номер, Приказы.Дата, Приказы.Наименование, Фирма.Наименование, Фирма.Директор, Отделы.Наименование, Format([Дата],"mmmm\/yyyy") AS Выражение1, Приказы.Сумма
FROM Фирма, (Отделы INNER JOIN Сотрудники ON Отделы.КдОтд = Сотрудники.КдОтд) INNER JOIN (Приказы INNER JOIN СП ON Приказы.КдДок = СП.КдДок) ON Сотрудники.КдСтр = СП.КодСтр
WHERE (((Приказы.Номер)=[Введите
номер приказа]));
14)произв_реал_отд
SELECT Сотрудники.КдОтд,
Сотрудники.КдСтр, Sum(Заказы!Кол*Заказы!Цена-
FROM Сотрудники INNER JOIN Заказы ON Сотрудники.КдСтр = Заказы.КдСтр
GROUP BY
Сотрудники.КдОтд, Сотрудники.
HAVING (((Сотрудники.КдОтд)=[Введите
код отдела]) AND ((Format([Заказы]![Дата],"
15) произв_реализ_отд_сумма
Информация о работе Разработка системы управления работой компании