Аналогично создадим таблицу сотрудникишт_т

База данных «РОГА и КОПЫТА»

Задача.Разработчик баз данных получил от заказчика задачу: создать базу данных для ООО «Рога и копыта». Из документов ему представлена таблица Сотрудники – сведения о работниках ООО и занимаемых ими должностях. При этом отмечено, что на совмещение должностей берутся лишь штатные сотрудники (совместителей брать нельзя).

Фамилия Имя Отчество Дата рожд. Пол Должность Ставка Дата приема Дом. Тел.
Бендер Остап Ибрагимович 28/02/1973 муж Ген. директор 04/02/03 777-88-99
Бендер Остап Ибрагимович 28/02/1973 муж Вед. специалист 0,5 04/02/03 777-88-99
Берлага Натан Иосифович 22/10/1967 муж Бухгалтер 18/02/03 111-33-77
Балаганов Александр Михайлович 06/06/1979 муж Менеджер 04/02/03  
Балаганов Александр Михайлович 06/06/1979 муж Кладовщик 0,5 04/02/03  
Паниковский Михаил Самуэльевич 11/11/1943 муж Менеджер 04/02/03  
Паниковский Михаил Самуэльевич 11/11/1943 муж Рабочий 0,5 04/02/03  
Синицына Зося Станиславовна 07/07/1986 жен Секретарь 13/02/03 555-77-44
Синицына Зося Станиславовна 07/07/1986 жен Вед. специалист 0,5 13/02/03 555-77-44
Лоханкин Васисуалий Андреевич 13/11/1970 муж Вед. специалист 18/02/03  

Анализируя эту таблицу , разработчик отметил следующее.

Некоторые записи в таблице Сотрудники практически полностью повторяются, то есть она обладает избыточностью. Избыточность устраняется разбиением этой таблицы на три:

Штаты

№ п.п. Должность Разряд Количество

Сотрудники штатные

№ п.п. Фамилия Имя Отчество Дата рожд. Пол Должность Дата приема Дата увольнения Дом телефон

Сотрудники совместители

№ п.п. Фамилия Должность Ставка Дата приема Дата увольнения

Связи между этими таблицами такие:

· Значения поля Должность в таблицах Сотрудники штатные и Сотрудники совместители берем из таблицы Штаты

· Значения поля Фамилия в таблицу Сотрудники совместители берем из таблицы Сотрудники штатные

Получим 3 связанных таблицы:

Штаты

№ п.п. Должность Разряд Количество
1. Ген. Директор
2. Бухгалтер
3. Вед. специалист
4. Менеджер
5. Секретарь
6. Зав. Складом
7. Кладовщик
8. Рабочий

Сотрудники штатные

№ п.п. Фамилия Имя Отчество Дата рожд. Пол Должность Дата приема Дата увольнения Дом телефон
1. Бендер Остап Ибрагимович 28/02/1973 муж Ген. Директор 04/02/03   777-88-99
2. Берлага Натан Иосифович 22/10/1967 муж Бухгалтер 18/02/03   111-33-77
3. Балаганов Александр Михайлович 06/06/1979 муж Менеджер 04/02/03    
4. Паниковский Михаил Самуэльевич 11/11/1943 муж Менеджер 04/02/03    
5. Синицына Зося Станиславовна 07/07/1986 жен Секретарь 13/02/03   555-77-44
6. Лоханкин Васисуалий Андреевич 13/11/1970 муж Вед. специалист 18/02/03    

Сотрудники совместители

№ п.п. Фамилия Должность Ставка Дата приема Дата увольнения
1. Бендер Вед. специалист 0,50 04/02/03  
2. Балаганов Кладовщик 0,50 04/02/03  
3. Паниковский Рабочий 0,50 04/02/03  
4. Синицына Вед. специалист 0,25 13/02/03  

Создание таблиц.

Откройте Главное меню Пуск, все программы, Microsoft Office , Access 2007. В появившемся окне выберите Новую базу данных, назовите базу данных «Рога и копыта» и нажмите кнопку Создать.

аналогично создадим таблицу сотрудникишт_т - student2.ru

Создавать все таблицы будем в режиме конструктора. Для этого на вкладке Создание выбрать Конструктор таблиц.

аналогично создадим таблицу сотрудникишт_т - student2.ru

Заполните Имена полей таблицы Штаты, каждому полю задайте тип данных.

Нпп Счетчик
Должность Текстовый
Разряд Числовой
Количество Числовой

При разработке базы данных недопустимо использовать такое имя поля как № п.п., поэтому мы его заменим на имя Нпп, а в разделе Свойства поля в строке Подпись укажем то имя, которое мы хотим видеть в заголовке столбца готовой таблицы, т.е № п.п.

Поле № п.п. зададим как ключевое, для этого нужно навести курсор на имя поля и в контекстном меню выбрать пункт Ключевое поле.

Получим такой результат: аналогично создадим таблицу сотрудникишт_т - student2.ru

Закроем Таблицу нажав указателем мыши на самый нижний значок закрытия окна (на нижний крестик, не закрывая всю базу данных). Сохраним таблицу под именем Штаты_т.

аналогично создадим таблицу сотрудникишт_т - student2.ru

Аналогично создадим таблицу СотрудникиШт_т

Задайте имена полей и их типы (Внимание! Особенности задания некоторых полей описаны ниже, остальные поля задаются как на рисунке):

аналогично создадим таблицу сотрудникишт_т - student2.ru

Итак,

· поле НомерПоШтРасп, задается аналогично полю Нпп в предыдущей таблице. (Оно ключевое)

· Поля Фамилия, Имя, Отчество, ДомТел имеют тип текстовый.

· Для полей с датами установите тип Дата/время, а в разделе Свойство поля задайте маску ввода: установите курсор в строке Маска ввода, нажмите на кнопку «…», в открывшемся окне выберите Краткий формат даты, нажмите Далее, выберите заполнитель #, нажмите Готово.

аналогично создадим таблицу сотрудникишт_т - student2.ru аналогично создадим таблицу сотрудникишт_т - student2.ru

Должно получиться вот что:

аналогично создадим таблицу сотрудникишт_т - student2.ru

· Для поля Пол выберите тип данных Текстовый и Мастер подстановок,

аналогично создадим таблицу сотрудникишт_т - student2.ru

в появившемся окне установите точку в строке Будет введен фиксированный набор значений. Далее напишите в таблице две записи «муж» и «жен». Нажмите Готово.

аналогично создадим таблицу сотрудникишт_т - student2.ru аналогично создадим таблицу сотрудникишт_т - student2.ru

· Для поля Должность, тоже нужно воспользоваться мастером подстановок, но переключатель установить в строку Объект будет использовать значения из таблицы или запроса. После чего нужно выбрать таблицу Штаты_т, затем поле Должность перекинуть в Выбранные поля и нажать Готово.

аналогично создадим таблицу сотрудникишт_т - student2.ru аналогично создадим таблицу сотрудникишт_т - student2.ru

аналогично создадим таблицу сотрудникишт_т - student2.ru

Самостоятельно разработайте таблицу СотрСовм_т

Код Счетчик, ключевое
Фамилия Текстовый, мастер подстановок из таблицы СотрудникиШт_т
Должность Текстовый, мастер подстановок из таблицы Штаты_т
Ставка Числовой , Указать в свойстве поля в строке размер поля Одинарное с плавающей точкой (см рисунок ниже)
ДатаПриема ДатаУвольн Дата/время, установить Краткий формат даты

На рисунке показано задание свойств поля Ставка:

аналогично создадим таблицу сотрудникишт_т - student2.ru

Так выглядит таблица Сотрудников совместителей:

аналогично создадим таблицу сотрудникишт_т - student2.ru

Связи между таблицами

На вкладке Работа с базами данных, в группе Показать или скрыть нажать кнопку Схема данных.

аналогично создадим таблицу сотрудникишт_т - student2.ru аналогично создадим таблицу сотрудникишт_т - student2.ru

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

· Обеспечение целостности данных,

· Каскадное обновление связанных полей и

· каскадное удаление связанных полей.

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

Убедитесь, что тип связи установился один-ко-многим.

Добавьте в таблицу СотрудникиШт_т поля Автобиография (тип – МЕМО) и Фото (тип – объект OLE).

Заполните все таблицы данными.

Создание форм

Формы - объект база данных, который позволяет выводить на экран нужные данные в удобном для пользователя виде и затем, по необходимости корректировать эти данные.

Для создания формы нужно выбрать на вкладке Создание группу Формы кнопку Конструктор форм.

аналогично создадим таблицу сотрудникишт_т - student2.ru

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

Для написания заголовка формы выберите кнопку Подпись аналогично создадим таблицу сотрудникишт_т - student2.ru в группе Элементы управления. После растяните этот объект на нужную величину и в нем введите название формы «Сотрудники штатные».

аналогично создадим таблицу сотрудникишт_т - student2.ru

Для дальнейшей работы выберем кнопку Страница свойств в группе Сервис. аналогично создадим таблицу сотрудникишт_т - student2.ru

В появившемся окне свойств выберите в первой белой строке слово Форма. На вкладке Данные в пункте Источник записей, нажав на стрелку выберите таблицу СотрудникиШт_т.

аналогично создадим таблицу сотрудникишт_т - student2.ru

Для добавления полей на форму нажмите кнопку Добавить существующие поля в группе Сервис, справа появится соответствующее окно. Из этого окна нужные поля перетащите на форму и разместите их так, чтобы было удобно их просматривать. аналогично создадим таблицу сотрудникишт_т - student2.ru Для перемещения отдельных элементов нужно удерживать левую кнопку мыши на квадратике в левом верхнем углу объекта.

После того, как все данные размещены на форме, их надо оформить. Для этого нужно последовательно выделять каждый объект и в Окне свойств на вкладке Макет задавать необходимые параметры, например, Тип фона, Цвет фона, Шрифт, Размер шрифта, Цвет текста и др. Самостоятельно задайте параметры для оформления всего поля формы и всех ее объектов, должно получиться примерно так:

аналогично создадим таблицу сотрудникишт_т - student2.ru

Форму закройте, сохраните под именем СотрудникиШт_ф.

Откройте форму в режиме просмотра и для каждого сотрудника в поле фото нажмите правую кнопку мыши и выберите пункт Вставить объект… В появившемся окне выберите Создать новый файл, затем Bitmap Image, нажмите ОК. Нарисуйте в Pain фотографию первого героя нашей базы данных. После закрытия окна Pain, фотография окажется на нужном месте. Аналогично для всех героев создать фото и придумать автобиографию.

Такие формы разработать для всех таблиц.

Создание запросов

Запрос с параметром.

Задача. Необходимо по указанной должности вывести список сотрудников, занимающих эту должность.

На вкладке Создание нажмите кнопку Конструктор запросов. В окне добавление таблицы добавьте таблицы Штаты_т и СотрудникиШт_т. Закройте это окно и оформите запрос по образцу:

аналогично создадим таблицу сотрудникишт_т - student2.ru

Закройте запрос и сохраните. Запустите его и в окне запроса задайте должность, например, Менеджер, проанализируйте результат. аналогично создадим таблицу сотрудникишт_т - student2.ru

Создайте такой запрос для вывода списка сотрудников, принятых на работу в какую-либо заданную дату.

Запрос на выборку

Задача. Вывести список всех мужчин.

Такой запрос в режиме конструктора буде выглядеть так:

аналогично создадим таблицу сотрудникишт_т - student2.ru

Самостоятельно разработайте запросы для просмотра списка всех женщин и менеджеров.

Запрос с вычислениями

Задача. Нужно вывести список всех пенсионеров. Пенсионерами считаются люди в возрасте старше 55 лет.

Откройте Конструктор запросов, Выберите таблицу, содержащую список всех сотрудников. Выберите в запросе нужные поля: Фамилия, Имя, Отчество. Добавим новое поле Возраст (его нет ни в одной таблице, его нам предстоит рассчитать по формуле: из текущей даты вычтем дату рождения ( найдем количество дней между двумя датами) и разделим разность на 365 (получим количество лет ).

Для ввода формулы нажмите кнопку аналогично создадим таблицу сотрудникишт_т - student2.ru . Появится окно формул: аналогично создадим таблицу сотрудникишт_т - student2.ru

В этом окне напишите Возраст: выберите папку Функции, Встроенные функции, Дата/время, Date. Нажмите кнопку Вставить. Далее «вручную» оформить всю формулу. Для выбора даты рождения в таблицах выберите нужную таблицу и поле.

аналогично создадим таблицу сотрудникишт_т - student2.ru

аналогично создадим таблицу сотрудникишт_т - student2.ru

аналогично создадим таблицу сотрудникишт_т - student2.ru Всю формулу возьмите в скобки и разделите на 365, т.к. с помощью формулы посчитано количество дней между сегодняшней датой и датой рождения.

Под полем Возрастнужно выставить Условие отбора > 55.

Окно запроса станет выглядеть так:

аналогично создадим таблицу сотрудникишт_т - student2.ru

Формирование отчетов.

С помощью отчетов нужно создать бэйджи для всех сотрудников. Например, один из них будет выглядеть так:

аналогично создадим таблицу сотрудникишт_т - student2.ru

Для этого на вкладке Создание выберите Конструктор отчетов.

Чтобы убрать Верхний и Нижний колонтитул в Контекстном меню (правая кнопка мыши) Колонтитулы станицы.

аналогично создадим таблицу сотрудникишт_т - student2.ru

Дальнейшая работа не отличается от работы в формах. Добавьте нужные поля. Оформите их.

аналогично создадим таблицу сотрудникишт_т - student2.ru

Самостоятельно разработайте отчеты

1)Поздравительные открытки к 8 марта всем женщинам предприятия и

2) Поздравительные открытки к 23 февраля всем мужчинам предприятия.

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

Наши рекомендации