- •2017 Оглавление
- •1. Описание предметной области
- •1.1 Назначение информационной системы
- •1.2. Характеристика документов и атрибутов предметной области
- •2. Проектирование информационной системы
- •2.1. Построение инфологической модели
- •2.2. Описание информационных объектов
- •3. Объекты базы данных Microsoft Access
- •3.1. Таблицы
- •3.2. Запросы
- •3.3. Экранные формыввода, удаления и редактирования данных
- •3.4. Отчеты
- •3.5 Отчеты, содержащие условие выбора.
- •3.6.Главнаякнопочная форма
- •Список использованной литературы
3. Объекты базы данных Microsoft Access
3.1. Таблицы
Средствами Microsoft Access созданы следующие таблицы.
Таблица: Bank
Имя Тип Размер
Номер платёжного Длинное целое 4
поручения
ИНН организации Длинное целое 4
ИНН ответственного Длинное целое 4
сотрудника
Таблица: Order
Имя Тип Размер
Номер платёжного Длинное целое 4
поручения
Дата поступления Дата/время 8
Отметка о Логический 1
выполнении
Таблица: Organization
Имя Тип Размер
ИНН организации Длинное целое 4
Название Текстовый 50
Телефон Длинное целое 4
Адрес Текстовый 50
Таблица: Company
Имя Тип Размер
ИНН организации Длинное целое 4
ФИО директора Текстовый 50
Годовой доход Денежный —
Таблица: Officemen
Имя Тип Размер
ИНН сотрудника Длинное целое 4
ФИО сотрудника Текстовый 50
Номер отдела Длинное целое 4
Стаж работы Длинное целое 4
(полных лет)
Дата рождения Дата/время 8
Таблица: Office
Имя Тип Размер
Номер отдела Длинное целое 4
ИНН главного Длинное целое 4
Телефон отдела Текстовый 50
Таблица: Chief
Имя Тип Размер
ИНН главного Длинное целое 4
ФИО главного Текстовый 50
Стаж работы Длинное целое 4
(полных лет)
Дата рождения Дата/время 8
Схема связи таблиц показана на рис. 2.
Рис. 2. Схема связи таблиц
Ниже приводится содержимое таблиц, использованных в контрольном примере.
3.2. Запросы
Для решения поставленной задачи разработаны SQL-запросы, описанные ниже.
Запрос «Officemen1» содержащий ИНН сотрудника и его ФИО. ИНН сотрудника выбирается с помощью специальной формы, значения полей которой являются параметрами данного запроса. Вид запроса в режиме конструктора представлен на рис. 3, а ниже приведен текст запроса на языкеSQL:
Рис. 3. Запрос «Officemen1» в режиме конструктора
SELECT Officemen.[ИНН сотрудника], Officemen.[ФИО сотрудника]
FROM Officemen;
Результаты запроса:
Запрос «Chief1» содержащий ИНН главного и его ФИО. ИНН главного выбирается с помощью специальной формы, значения полей которой являются параметрами данного запроса. Вид запроса в режиме конструктора представлен на рис. 4, а ниже приведен текст запроса на языкеSQL:
Рис. 4. Запрос «Chief1» в режиме конструктора
SELECT Chief.[ИНН главного], Сhief.[ФИО главного]
FROM Chief;
Результат запроса:
Запрос «Дата» выводит все даты, в которые поступили платёжные поручения. Вид запроса в режиме конструктора представлен на рис. 5, а ниже приведен текст запроса на языке SQL:
Рис. 5. Запрос «Дата» в режиме конструктора
SELECT distinct Order.[Дата поступления]
FROM [Order];
Результат запроса:
Запрос «Organization_Z» содержит ИНН организации и её Название. Вид запроса в режиме конструктора представлен на рис. 6, а ниже приведен текст запроса на языкеSQL:
Рис. 6. Запрос «Organization_Z» в режиме конструктора
SELECT distinct Order.[Дата поступления]
FROM [Order];
Результат запроса:
3.3. Экранные формыввода, удаления и редактирования данных
Для просмотра, ввода, удаления и редактирования платёжных поручений, создана форма в один столбец (рис. 7–8). С помощью мастера создания элементов управления на форме создано поле со списком, позволяющее быстро отыскивать данные о нужной организации, т.к. в свойстве «Только значение источника строк» полей “ ИНН организации ” и “ ИНН сотрудника ” флаг был установлен в положение true, а с помощью процедуры обработки событий «получение фокуса» и «после обновления» в поле, расположенном ниже отображается “Название организации” и “Имя сотрудника”, соответственно. Тело процедуры представляет собой следующее:
Set MyRSt = CurrentDb.OpenRecordset("Officmen1")
With MyRSt
.MoveFirst
TF = Not .EOF
WhileTF
If[ИНН__ответственного_сотрудника] = .Fields("ИНН сотрудника")Then
[Поле14] = .Fields("ФИО сотрудника")
TF=False
Else
.MoveNext
TF = Not .EOF
End If
Wend
End With
Set MyRSt = CurrentDb.OpenRecordset("Organization_Z")
With MyRSt
.MoveFirst
TF = Not .EOF
WhileTF
If[ИНН_организации] = .Fields("ИНН организации")Then
[Поле12] = .Fields("Название")
TF = False
Else
.MoveNext
TF = Not .EOF
End If
Wend
End With
Соответственно для «ИНН сотрудника» и для «ИНН организации», используются запросы "Organization_Z" и "Officmen1". В общем виде процедуру можно представить так:
PrivateSub<поле_ввода_информации>_<событие>()
Set MyRSt = CurrentDb.OpenRecordset(“<название_запроса>”)
With MyRSt
.MoveFirst
TF = Not .EOF
WhileTF
If[<поле_ввода_информации>] = .Fields(“<соотв_поле_в_запросе>”)Then
[Поле_отображающее_информ] = .Fields("<соотв_поле_в_запросе>")
TF = False
Else
.MoveNext
TF = Not .EOF
End If
Wend
End With
Эта процедура будет использована и в формах описанных ниже.
Рис. 7. Форма просмотра, ввода и редактирования платёжных поручений в окне конструктора
Рис. 8. Вид формы «Bank»
Для просмотра, ввода, удаления и редактирования данных об организации, созданы формы в один столбец (рис.9-12). Вид формы Organizationв окне конструктора показан на рис. 9, а в режиме формы — на рис. 10. Вид формыCompanyв окне конструктора показан на рис. 11, а в режиме формы — на рис. 12. С помощью мастера создания элементов управления на форме создано поле со списком, позволяющее быстро отыскивать данные о нужной организации, в списке выбирается “ИНН организации”, а с помощью процедуры обработки событий «получение фокуса» и « после обновления» в поле, расположенном ниже отображается “Название организации”.
Рис. 9. Форма просмотра и редактирования информации об организации в окне конструктора
Рис. 10. Вид формы «Organization»
Рис. 11. Форма просмотра и редактирования дополнительной информации об организации в окне конструктора
Рис. 12. Вид формы «Company»
Для просмотра, ввода и редактирования данных о сотрудниках, отделах и менеджерах представлены на рис.13-18. Вид формы Officemenв окне конструктора показан на рис. 13, а в режиме формы — на рис. 14. С помощью мастера создания элементов управления на форме создано поле со списком, позволяющее быстро прикрепить сотрудника к одному из существующих отделов, т.к. в свойстве «Только значение источника строк» поля “номер отдела” флаг был установлен в положениеtrue, тот же прием был использован и для поля “ИНН главного” вOffice.
Рис. 13. Форма «Officemen» в окне конструктора
Рис. 14. Вид формы «Officemen»
Рис. 15. Формы «Office» в окне конструктора
Рис. 16. Вид формы «Office»
Рис. 17. Формы «Chief» в окне конструктора
Рис. 18. Вид формы «Chief»