Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Банк / Курсач.doc
Скачиваний:
81
Добавлен:
01.05.2014
Размер:
2.43 Mб
Скачать

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»

Соседние файлы в папке Банк