19) Сотрудники_анализ
SELECT Сотрудники.Ф,
Заказы!Кол*Заказы!Цена AS Сумма, Format([Дата],"mmmm\/yyyy")
AS Месяц, Заказы.Цена, [Сумма]*Сотрудники!ПроцЗп/100
AS ЗП, Сотрудники.ПроцЗп, Заказы.Кол, Отделы.Наименование
FROM (Отделы INNER JOIN
Сотрудники ON Отделы.КдОтд = Сотрудники.КдОтд)
INNER JOIN Заказы ON Сотрудники.КдСтр = Заказы.КдСтр;
20) уволенные
сотрудники
SELECT Сотрудники.КдСтр,
Сотрудники.Ф, Сотрудники.И, Сотрудники.О,
Приказы.Дата
FROM Сотрудники
INNER JOIN (Приказы INNER JOIN СП ON Приказы.КдДок
= СП.КдДок) ON Сотрудники.КдСтр = СП.КодСтр
WHERE (((Приказы.Наименование)
Like "Об увол*"));
21) Товарная_накладная
SELECT Товар.Наименование,
Заказы.Кол, Заказы.Цена, Заказы.Скидка,
Заказы!Цена*(1-Заказы!Скидка/100) AS Цена_со_скидкой,
Заказы.Дата, Накладные.Номер, Договор.НмДоговора,
Накладные.Дата, Заказчик.Заказчик, Заказчик.УНН,
Заказчик.Рас_счет, Заказчик.ОКЮЛП, Заказчик.Город,
Заказчик.Улица, Заказчик.Дом, Банки.Наименование,
Банки.Филиал, Банки.Город, Банки_1.Наименование,
Банки_1.Филиал, Банки_1.Город, Фирма.Наименование,
Фирма.УНН, Фирма.Рас_счет, Фирма.ОКЮЛП,
Фирма.Город, Фирма.Улица, Фирма.Дом
FROM Фирма LEFT
JOIN Банки AS Банки_1 ON Фирма.КдБанка
= Банки_1.КдБанка, Товар INNER JOIN (Приход INNER
JOIN (Накладные INNER JOIN ((Банки INNER JOIN Заказчик
ON Банки.КдБанка = Заказчик.КдБанка) INNER
JOIN (Договор INNER JOIN Заказы ON Договор.КдДоговора
= Заказы.КдДоговора) ON Заказчик.КдЗак
= Заказы.КдЗак) ON Накладные.КдНакл = Заказы.КдНакл)
ON Приход.КдПрх = Заказы.КдПрх) ON Товар.КдТов
= Приход.КдТов
WHERE (((Договор.НмДоговора)=[Введите
номер договора]))
ORDER BY Заказы.Кол
DESC;
22) Счет-фактура
SELECT Товар.Наименование,
Заказы.Кол, Заказы.Цена, Заказы.Скидка,Заказы!Цена*(1-Заказы!Скидка/100)
AS Цена_со_скидкой, Договор.НмСчет_фактуры,
Заказы.Дата, Заказчик.Заказчик, Заказчик.УНН,
Заказчик.Рас_счет, Заказчик.ОКЮЛП, Заказчик.Город,
Заказчик.Улица, Заказчик.Дом, Банки.Наименование,
Банки.Филиал, Банки.Город, Банки.Улица,
Банки.Дом, Банки_1.Наименование, Банки_1.Филиал,
Банки_1.Город, Банки_1.Улица, Банки_1.Дом,
Фирма.Наименование, Фирма.УНН, Фирма.Рас_счет,
Фирма.ОКЮЛП, Фирма.Город, Фирма.Улица,
Фирма.Дом
FROM Фирма LEFT JOIN
Банки AS Банки_1 ON Фирма.КдБанка = Банки_1.КдБанка,
Товар INNER JOIN (Приход INNER JOIN ((Банки INNER JOIN
Заказчик ON Банки.КдБанка = Заказчик.КдБанка)
INNER JOIN (Договор INNER JOIN Заказы ON Договор.КдДоговора
= Заказы.КдДоговора) ON Заказчик.КдЗак
= Заказы.КдЗак) ON Приход.КдПрх = Заказы.КдПрх)
ON Товар.КдТов = Приход.КдТов
WHERE (((Договор.НмСчет_фактуры)=[Введите
номер счет-фактуры]))
ORDER BY Заказы.Кол
DESC;
23) Юбилеи_жизни
SELECT Month([Дата_рождения])
AS M, Day([Дата_рождения]) AS Д, Year([Дата_рождения])
AS Г, Year(Now())-Year([Дата_рождения]) AS Лет, Сотрудники.Ф,
Сотрудники.И, Сотрудники.О, Сотрудники.Должность
FROM Сотрудники
LEFT JOIN уволенные_сотрудники ON Сотрудники.КдСтр
= уволенные_сотрудники.КдСтр
WHERE (((Year(Now())-Year([Дата_рождения]))=20)
AND ((уволенные_сотрудники.Дата) Is Null)) OR
(((Year(Now())-Year([Дата_рождения]))=25) AND ((уволенные_сотрудники.Дата)
Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=30) AND
((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=35)
AND ((уволенные_сотрудники.Дата) Is Null)) OR
(((Year(Now())-Year([Дата_рождения]))=40) AND ((уволенные_сотрудники.Дата)
Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=45) AND
((уволенные_сотрудники.Дата) Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=50)
AND ((уволенные_сотрудники.Дата) Is Null)) OR
(((Year(Now())-Year([Дата_рождения]))=55) AND ((уволенные_сотрудники.Дата)
Is Null)) OR (((Year(Now())-Year([Дата_рождения]))=60) AND
((уволенные_сотрудники.Дата) Is Null))
ORDER BY Month([Дата_рождения]),
Day([Дата_рождения]), Year([Дата_рождения]),
Сотрудники.Ф, Сотрудники.И, Сотрудники.О;
24) юбилеи_работы
SELECT Month(Подчиненный_юбилеи_работы!Дата)
AS M, Day(Подчиненный_юбилеи_работы!Дата)
AS Д, Year(Подчиненный_юбилеи_работы!Дата)
AS Г, Year(Now())-Year(Подчиненный_юбилеи_работы!Дата)
AS Лет, Сотрудники.Ф, Сотрудники.И, Сотрудники.О,
Сотрудники.Должность
FROM ((Сотрудники
LEFT JOIN уволенные_сотрудники ON Сотрудники.КдСтр
= уволенные_сотрудники.КдСтр) LEFT JOIN Подчиненный_юбилеи_работы
ON Сотрудники.КдСтр = Подчиненный_юбилеи_работы.КдСтр)
INNER JOIN (Приказы INNER JOIN СП ON Приказы.КдДок
= СП.КдДок) ON Сотрудники.КдСтр = СП.КодСтр
GROUP BY Month(Подчиненный_юбилеи_работы!Дата),
Day(Подчиненный_юбилеи_работы!Дата), Year(Подчиненный_юбилеи_работы!Дата),
Year(Now())-Year(Подчиненный_юбилеи_работы!Дата),
Сотрудники.Ф, Сотрудники.И, Сотрудники.О,
Сотрудники.Должность, Year(Now())-Year(Подчиненный_юбилеи_работы!Дата),
уволенные_сотрудники.Дата
HAVING (((уволенные_сотрудники.Дата)
Is Null) AND ((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=5))
OR (((уволенные_сотрудники.Дата) Is Null) AND
((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=10))
OR (((уволенные_сотрудники.Дата) Is Null) AND
((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=15))
OR (((уволенные_сотрудники.Дата) Is Null) AND
((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=20))
OR (((уволенные_сотрудники.Дата) Is Null) AND
((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=25))
OR (((уволенные_сотрудники.Дата) Is Null) AND
((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=30))
OR (((уволенные_сотрудники.Дата) Is Null) AND
((Year(Now())-Year([Подчиненный_юбилеи_работы]![Дата]))=35))
ORDER BY Month(Подчиненный_юбилеи_работы!Дата),
Day(Подчиненный_юбилеи_работы!Дата), Year(Подчиненный_юбилеи_работы!Дата),
Сотрудники.Ф, Сотрудники.И, Сотрудники.О;
Общие
сведения о формах
Формы используются
для различных целей: для отображения
результатов запросов к базе данных , для
вводи и модификации данных в таблицах.
Формы обеспечивают удобство работы с
таблицей при наглядном отображении данных
на экране.
Большая
часть данных, представленных в форме,
берется из таблицы или запроса.
Другая информация, несвязанная ни
с таблицей, ни с запросом, хранится
в макете формы
Для
создания связи между формой и записями
таблицы, являющейся источником данных
формы, используются графические объекты,
называемые элементами управления. Чаще
всего для отображения и ввода данных
используется поле.
Главная
форма содержит 4 владки: Приветствие,
Общие сведения, Бухгалтерия и Аналитика.
На вкладке «Приветствие» изображены
основные данные о компании
и заставка в виде автомобиля
(так как компания занимается
продажей автомобилей) для более дружелюбного
интерфейса
Вкладка «Общие сведения» содержит основную
информацию о деятельности компании:
сведения о сотрудниках, клиентах, с которыми
работает или работала компания, заказах,
товарах, поставщиках, приходах и банках.
Здесь же можно просмотреть информацию
о предстоящих днях рождения сотрудников
и их детей, о юбилейных датах работы и
жизни.
В данной
форме можно также внести изменения в
уже хранящуюся в приложении информацию
и занести новую информацию, например,
просмотреть данные о сотрудниках компании,
выбрав переключатель «Сотрудники» и
нажав кнопку «Показать», или добавить
нового сотрудника, нажав кнопку «Изменить».
В формах предоставляется возможность
сортировки фамилий сотрудников по убыванию
(от Я до А) и возрастанию (от А до Я), а также
можно просмотреть данные только на одного
сотрудника.
При оформлении
нового заказа менеджер должен убедиться
поставляют ли компании необходимую клиенту
марку автомобиля, и если поставляют, то,
нажав на кнопку «Товары в наличии», посмотреть,
есть ли данный товар на складах.
Убедившись в
наличии необходимого автомобиля, менеджер
переходит к оформлению заказа, выбрав
«Заказы» и нажав «Изменить». В появившемся
окне он вносит новые данные о заказе,
из раскрывающихся списков выбираем заказчика
и сотрудника, обслуживающего данный заказ
(себя), а для того, чтобы определить код
прихода товара нажимает кнопку «Приход-товары»
и в представившейся форме узнает, когда
данный автомобиль поступил на склад (код
прихода).
При просмотре
«Дней рождений сотрудников» появляется
следующая форма
Вкладка «Бухгалтерия» служит для отображения
сведений о документации компании, подготовки
различного рода документов, а также изменения
процента заработной платы сотрудников.
Принцип работы
с общими сведениями о приказах,
накладных и счет-фактурах аналогичен
работе с общими сведениями в одноименной
вкладке, рассмотренной выше.
Подготовка
документов обеспечивает вывод в
форме отчета накладных, счет-фактур,
ведомостей заработной платы и приказов
за определенный месяц.
Например, стоит
задача подготовить накладную №11.
При нажатии
на кнопку «Показать» появляется диалоговое
окно с просьбой ввести номер накладной
(Вводим 11). Результат:
Вкладка «Аналитика»
служит для анализа деятельности компании.
Здесь можно вывести информацию о «Самых-сымых»,
т.е. лидерах продаж (товары,струдники
и т.д.) и узнать, например, три самых продаваемых
товара месяца (название месяца вводится
в диалоговое окно). Также можно проанализировать
деятельность компании за интересующий
вас период времени (с.. по..), просмотрев
доходы, расходы, прибыль и заработную
плату сотрудников, количество и сумму
реализованной продукции за интересующий
вас период времени.
Прибыль за период
с..
по..
Общие
сведения об отчетах
Отчет
— это гибкое и эффективное
средство для организации данных
при выводе на печать. С помощью отчета
имеется возможность вывести необходимые
сведения в том виде, в котором требуется
Больше
всего сведений в отчете берется
из базовой таблицы, запроса или
инструкции SQL, являющихся источниками
данных для отчета. Другие сведения вводятся
при разработке отчета.
Для
создания связи между отчётами и
его исходными данными применяются
элементы управления. Ими могут быть
поля, содержащие имена или числа,
надписи для заголовков, декоративные
линии для графического оформления отчёта
В
базе данных содержаться следующие
отчеты:
- Товарная
накладная
- Счет-фактура
Приказы:
- Об увольнении
- О поощрении
- О зачислении
- О наказании
Разработка пограммных
расширний для база
данных: макросы и модули
Макрос –
последовательность команд встроенного
в Access языка VBA, задающихавтоматическое
выполнение некоторых операций.
Модуль –
совокупность описаний, инструкций и
процедур на языке VBA, сохраненная под
общим именем.
Выполнение сортировки
и фильтрации в форме:
Private
Sub az_GotFocus()
Me.подчиненная_форма.Form.OrderBy
= "Ф"
Me.подчиненная_форма.Form.OrderByOn
= True
End Sub
Private Sub za_GotFocus()
Me.подчиненная_форма.Form.OrderBy
= "Ф DESC"
Me.подчиненная_форма.Form.OrderByOn
= True
End Sub
Private Sub Список3_AfterUpdate()
If Not IsNull(Me.Список3)
Then
Me.подчиненная_форма.Form.Filter
= "КдСтр = " + Str(Me.Список3)
If Me.Флажок26 Then
Me.подчиненная_форма.Form.FilterOn
= True
Else
Me.подчиненная_форма.Form.FilterOn
= False
End If
End If
End Sub
Private Sub список4_AfterUpdate()
If Not IsNull(Me.Список3)
Then