Дополнительные приемы работы и задачи

Создание архива уволенных.

В таблице РАБОТА записи, относящиеся к уволенным сотруд­никам, помечаются нулевым значением в поле Оклад. Имеет смысл периодически удалять записи, относящиеся к уволенному сотруднику из таблицы РАБОТА, а также связанные записи в таб­лицах ДЕТИ и ЛИЧНАЯ и перемещать их в архивную базу данных.

Задача 1.Создать архив уволенных.

Эта задача по сложности является нетривиальной, и лучше всего ее решать написанием модуля - программы на языке Visual Basic. Решим ее без программирования.

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

Общая последовательность работы может быть следующей:

1. Создать пустую базу данных Архив_уволенных.

2. В таблице РАБОТА найти записи уволенных (т. е. записи, со­держащие нули в поле Оклад) и создать таблицу Работа_уволенных (запрос на создание таблицы).

3.Создать таблицу Личная_уваленных, выбрав из таблицы ЛИЧНАЯ только те записи, в которых значения поля КодСотр равны кодам в таблице Работа_уволенных.

Примечание. Хранить информацию о детях уволенных необя­зательно.

4. Добавить в таблицу Работа_уволенных из таблицы РАБОТА все записи истории перемещений уволенных сотрудников (запрос на добавление).

5. Удалить записи уволенных из таблиц РАБОТА, ЛИЧНАЯ, ДЕТИ (запрос на удаление).

6. Экспортировать или копировать созданные таблицы Личная_уволенных и Работа_уваленных в базу Архив_уволенных. Установить связи между таблицами.

7. Удалить таблицы Личная_уволенных и Работа_уволенных из базы КАДРЫ.

Более подробный порядок работы:

Создайте новую базу.

1.1. Откройте второй экземпляр MS ACCESS и выберите команду Новая база данных. Определите ее место рас­положения (диск, папка) и задайте имя - Архив_уволенных.

1.2. Вернитесь в окно MS ACCESS, в котором открыта база КАДРЫ.

2. Создайте таблицу Работа_уволенных. Для этого:

2.1. В окне базы данных для объекта Запросы нажмите кнопку Создать, затем - Конструктор.

2.2. Добавьте в окно конструктора таблицы РАБОТА, ЛИЧНАЯ, ПОДРАЗДЕЛЕНИЯ.

Примечание. Во избежание непредсказуемых возможных оши­бок используйте на этапе отладки копию таблицы Работа.

2.3. В бланк запроса перетащите следующие поля: из таблицы ЛИЧНАЯ - ФИО;

из таблицы РАБОТА - КодСотр, ДатаРаб, ДатаПрик, НомПрик, КодПодразд, Должность, Оклад; из таблицы ПОДРАЗДЕЛЕНИЯ - НаименПолн.

2.4. В поле КодСотр в строке Сортировка выберите По воз­растанию.

2.5. В поле Оклад в строку Условие отбора введите: =0 (равно нулю).

2.6. Проверьте правильность работы запроса: кнопка Вид ®Режим таблицы.

2.7. Вернитесь в режим конструктора и выберите пункт ме­ню Запрос ® Создание таблицы (рис.4), задайте имя таблицы - Работа_уволенных.

Рис.4. Вид окна конструктора запроса на выборку


2.8. Нажмите кнопку Запуск для создания таблицы.

2.9. Сохраните запрос с именем Увольнение.

2.10. Закройте конструктор. На вкладке Запросы появится запрос с именем Увольнение, помеченный слева значком На вкладке Таблицы появится таблица с именем Ра6ота_уволенных, в которой должны находиться послед­ние записи о работе для каждого уволенного.

3. Создайте таблицу Личная_уволенных. Для этого:

3.1. В окне базы данных для объекта Таблицы создайте, пус­тую таблицу Личная_уволенных, скопировав структуру таблицы ЛИЧНАЯ.

3.2. Создайте запрос на добавление записей в таблицу Личная_уволенных. Для этого:

3.2.1. Войдите в режим создания запроса конструктором.

3.2.2. Добавьте таблицы ЛИЧНАЯ и Работа_уволенных.

3.2.3. Установите связь по полю КодСотр, перетащив это по­ле из таблицы Работа_уволенных на таблицу ЛИЧНАЯ.

3.2.4. В бланк запроса перетащите все поля таблицы ЛИЧНАЯ, захватив *.

3.2.5. Проверьте работу запроса.

3.2.6. Преобразуйте запрос на выборку в запрос на добав­ление: пункт меню Запрос ® Добавление, в табли­цу Личная_уволенных.

3.2.7. Сохраните запрос с именем Запрос_ Личная_ уволен­ных (рис.5).

Примечание. Таблица и запрос не могут иметь одина­ковые имена.

3.2.8. На инструментальной панели щелкните кнопку За­пуск (рис.5).

3.2. 9. Закройте конструктор.

3.2.10. В окне базы данных для объекта Таблицы откройте таблицу Личная_уволенных и проверьте ее содержимое.

Примечание. Пункт 3 можно выполнить аналогично п. 2 - за­просом на создание таблицы.

Рис.5. Вид окна конструктора с запросом «Запрос_личная_уволенных»


4. Добавьте в таблицу Работа_уволенных из таблицы РАБОТА все записи, относящиеся к уволенным сотрудникам. Для этого:

4.1. Войдите в режим создания запроса конструктором.

4.2. Добавьте таблицы Работа_уволенных, РАБОТА и ПОДРАЗДЕЛЕНИЯ.

4.3. Свяжите таблицы Работа_уволенных и РАБОТА по полю КодСотр, перетащив поле КодСотр из таблицы Работа_уволенных на поле КодСотр таблицы РАБОТА.

4.4. В бланк запроса перетащите поля: из таблицы Работа_уволенных - КодСотр, из таблицы РАБОТА - ДатаРаб, ДатаПрик, НомПрик, КодПодразд, Должность. Оклад, из таб­лицы ПОДРАЗДЕЛЕНИЯ - НаименПолн.

Примечание. Последовательность полей в запросе должна быть такой же, как в уже созданной таблице Работа уволен­ных. Поле ФИО в добавляемых записях будет пустым.

4.5. В поле Оклад в строку Условие отбора введите >0 (больше нуля) так как записи с нулевым значение оклада уже переданы в п. 2.

4.6. Проверьте работу запроса: кнопка Вид ® Режим таблицы.

4.7. Если запрос работает правильно, вернитесь в конструк­тор, выберите пункт меню Запрос ® Добавление, за­дайте имя таблицы - Работа_уволенных.

4.8. Сохраните запрос с именем Увольнения_все (рис.6).

Рис.6. Запрос на добавление «Увольнения_все»

4.9. На инструментальной панели щелкните кнопку Запуск.

4.10. Закройте конструктор. Перейдите в окне базы данных на объект Таблицы и просмотрите таблицу Работа_уволенных, в которой должны находиться все записи на каждого уволенного, но поле ФИО в группе записей заполнено один раз. Сортируйте таблицу по любому по­лю даты по убыванию (рис.7).

Рис.7. Вид таблицы «Работа_увольнение» в режиме таблицы


5. Удалите записи уволенных из таблиц ЛИЧНАЯ, РАБОТА и ДЕТИ, создав запрос на удаление. Для этого:

5.1. В режиме создания запроса с помощью конструктора добавьте таблицы ЛИЧНАЯ и Личная_уволенных.

5.2. Проверьте тип связи по полю КодСотр - должна быть связь первого типа.

5.3. Перетащите все поля таблицы ЛИЧНАЯ, в бланк запроса, захватив символ * в рамке таблицы.

5.4. Проверьте работу запроса. Установленный параметр связи первого типа должен обеспечить выборку из таб­лицы ЛИЧНАЯ только тех записей, коды которых совпа­дают с записями таблицы Личная_уволенных.

5.5. Преобразуйте запрос на выборку в запрос на удаление: Запрос ® Удаление.

5.6. Сохраните запрос с именем Удаление_уволенных..

5.7. Выполните запрос, щелкнув кнопку Запуск. При задан­ном режиме связи - сохранения целостности и каскадно­го удаления - удаляются записи одновременно из таблиц ЛИЧНАЯ, РАБОТА и ДЕТИ.

6. Скопируйте таблицы Работа_уваленных и Личная_уволенных в базу Архив_уволенных. Для этого:

6.1. Уменьшите окно программы MS ACCESS, содержащей базу КАДРЫ так, чтобы стало видно окно другого экземп­ляра MS ACCESS, содержащего базу Архив_уволенных.

6.2. Перетащите таблицы Работа_уволенных и Личная_уволенных в окно базы Архив_уволенных.

6.3. Откройте схему данных для базы Архив_уволенных, до­бавьте в схему таблицы Работа_уволенных и Личная_уволенных и создайте связь по полю КодСотр с со­хранением целостности и каскадным удалением данных (рис.8).

7. Удалите таблицы Личная_уволенных и Работа_уволенных из базы КАДРЫ.

Рис.8. Вид базы данных АРХИВ_УВОЛЕННЫХ

 


СОЗДАНИЕ КНОПОЧНЫХ ФОРМ.

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

Для примера создадим в виде форм следующую систему меню:

Главная кнопочная формас кнопками:

- Таблицы;

- Отчеты;

- Архив;

- Выход.


Форма_табпицы с кнопками:

- Личная;

- Работа;

- Возврат в главную форму.

Форма_отчеты с кнопками:

- Работа_текущая;

- Дети;

- Возврат в главную форму.

Форма_архив.

Схематично последовательность действий при создании кно­почной формы может быть следующей:

1. В режиме конструктора без указания источника данных соз­дать формы, содержащие нужные кнопки.

2. В свойствах каждой кнопки определить подпись и событие "нажатие кнопки". Событие - это действие, распознаваемое объектом (на­пример, щелчок мышью, нажатие кнопки), для которого можно запрограммировать отклик. Событие возникает в результате действий пользователя или программы, или они могут быть вызваны системой.

3. Для обработки события создать для каждой кнопки макрос в режиме построителя, который будет открывать нужный объ­ект: или форму, или таблицу, или отчет.

4. Обеспечить автоматическое открытие главной кнопочной формы при открытии базы данных.

Далее рассмотрим более подробный порядок создания фраг­мента системы кнопочных форм.

1. Создание формы Главная_кнопочная_форма.

1.1. Войдите в режим создания формы конструктором без указания источника данных.

1.2. Распахните окно конструктора на полный экран. На па­нели элементов отключите кнопку мастера.

1.3. Из панели элементов выберите элемент Кнопка и "нари­суйте" кнопки, расположив их "в столбик".

1.4. Из контекстного меню каждой кнопки выберите пункт Свойства и на вкладке Макет в строке Подпись задайте названия кнопок в соответствии с проектом.

1.5. Сохраните форму с именем Гяавная_кнопочная_форма.