Вариант 2. Строительная фирма
Письменное задание
Спроектировать базу данных для хранения сведений о бригадах, рабочих и заказах строительной фирмы. Создать таблицы, запросы, формы и форму «Меню».
Таблицы и поля
Таблица Бригада
• КодБригады — целое, первичный ключ
• НазваниеБригады — текст
• Бригадир — текст
• Телефон — текст
Таблица Рабочий
• КодРабочего — целое, первичный ключ
• ФИО — текст
• Специальность — текст
• Разряд — целое
• КодБригады — целое, внешний ключ
Таблица Заказ
• КодЗаказа — целое, первичный ключ
• КодБригады — целое, внешний ключ
• АдресОбъекта — текст
• ВидРабот — текст
• ДатаНачала — дата
• ДатаОкончания — дата
• Стоимость — числовой
Связи
• Бригада.КодБригады → Рабочий.КодБригады — один-ко-многим
• Бригада.КодБригады → Заказ.КодБригады — один-ко-многим
Запросы и источники данных
Запрос РабочиеПоБригаде
Источник данных:
таблицы Бригада, Рабочий
Назначение:
вывод списка рабочих выбранной бригады.
Запрос ЗаказыПоБригаде
Источник данных:
таблицы Бригада, Заказ
Назначение:
показать заказы, выполняемые выбранной бригадой.
Запрос ЗаказыЗаПериод
Источник данных:
таблица Заказ
Назначение:
вывод заказов за заданный период.
Запрос ДорогиеЗаказы
Источник данных:
таблица Заказ
Назначение:
отбор заказов дороже заданной суммы.
Запрос КоличествоЗаказовПоБригадам
Источник данных:
таблицы Бригада, Заказ
Назначение:
подсчитать количество заказов у каждой бригады.
Формы и источники данных
Форма Меню
Источник данных:
нет привязки
Кнопки:
• Открыть Бригада
• Открыть Рабочий
• Открыть Заказ
• Открыть ЗаказыПоБригаде
• Закрыть
Форма Бригада
Источник данных:
таблица Бригада
Форма Рабочий
Источник данных:
таблица Рабочий
Дополнительные поля-списки:
КодБригады берётся из таблицы Бригада
Форма Заказ
Источник данных:
таблица Заказ
Дополнительные поля-списки:
КодБригады берётся из таблицы Бригада
Форма ЗаказыПоБригаде
Источник данных:
запрос ЗаказыПоБригаде
Макросы для кнопок формы Меню
Basic
Копировать код
Sub Open_Brigada
ThisDatabaseDocument.FormDocuments.getByName("Бригада").open
End Sub
Sub Open_Rabochiy
ThisDatabaseDocument.FormDocuments.getByName("Рабочий").open
End Sub
Sub Open_Zakaz
ThisDatabaseDocument.FormDocuments.getByName("Заказ").open
End Sub
Sub Open_ZakazyPoBrigade
ThisDatabaseDocument.FormDocuments.getByName("ЗаказыПоБригаде").open
End Sub
Sub Close_Form
ThisComponent.close(True)
End Sub