close

Вход

Забыли?

вход по аккаунту

?

Глава 2

код для вставкиСкачать
ГЛАВА 2. СОЗДАНИЕ И ПОИСК ИНФОРМАЦИИ В МНОГОТАБЛИЧНОЙ БАЗЕ ДАННЫХ
Многотабличная база данных - это база данных подразумевающая взаимосвязь нескольких таблиц, связанных между собой определенным образом. 2.1. Создание таблиц и связей в Access. Формы ввода для многотабличной базы данных Создать базу данных больница, состоящую из следующих таблиц:
1. "Врачи": № паспорта, фамилия, имя, отчество, дата рождения, специальность, категория, разряд ЕТС, обслуживаемые палаты, фото.
2. "Учет отработанных смен": № паспорта, 1, 2...31 (числа месяца, за которые нужно проставить смены).
3. "Палаты": № палаты, количество мест, комфортабельность (да/нет).
4. "Пациенты": № полиса, фамилия, имя, отчество, дата рождения, дата поступления, дата выписки, № палаты, диагноз, № паспорта лечащего врача.
Организовать связи между таблицами и удобные формы ввода. Заполнить все таблицы данными.
1. Создадим таблицу "Врачи". Для этого запустите Microsoft Access (Пуск Программы Microsoft Access). В появившемся диалоговом окне необходимо указать, что у Вас будет новая база данных. Затем следует указать имя создаваемой базы данных и нажать кнопку "Создать". После чего в появившемся главном диалоговом окне СУБД Access (окне базы данных) выберите закладку таблица, где необходимо нажать кнопку "Создать". Для создания таблицы будем использовать режим конструктора, который позволяет самостоятельно описать структуру будущей таблицы. Таким образом, сначала в "конструкторе" мы опишем структуру всех таблиц, установим нужные связи, а уже потом будем вносить какие-то данные. После определения режима перед вами появится таблица конструктора, состоящая из трех столбцов, которую необходимо заполнить следующим образом (см. рис. 2.1).
В столбец "Имя поля" внесите названия всех полей вашей таблицы, в столбце "Типы данных" выберите из списка нужный тип поля. В последнем столбце "Описание" внесите необходимые на ваш взгляд примечания и они будут появляться в низу экрана. Для установки ключевого поля встаньте указателем мыши на нужное поле и на панели инструментов "Конструктор таблиц" выберите соответствующую кнопку с ключом. Кроме того, вам могут потребоваться следующие кнопки этой панели (см. рис. 2.2).
2. Аналогичным образом описывается структура остальных таблиц. В таблице Учет отработанных смен поле "№ паспорта" сделаем с помощью мастера подстановок, а остальные поля зададим логического типа (отработал смену/не отработал). Таким образом, чтобы сделать поле "№ паспорта" подставным из таблицы врачи при помощи матера подстановок, необходимо выбрать соответствующую команду в раскрывающемся списке типов полей (см. рис.2.3).
После чего в появившемся диалоговом окне необходимо поставить переключатель рядом с надписью, говорящей о том, что ваше поле - новый объект, будет использовать значения из таблицы или запроса. После чего нажимается кнопка "Далее". Указывается имя необходимой таблицы "Врачи", а затем в новом диалоговом окне с помощью стрелок перекидываются нужные поля (см. рис. 2.4).
Затем после нажатия кнопки "Далее" проверьте, чтобы ключевое поле было скрыто и нажмите кнопку "Готово". В результате у вас будет создано поле подстановки, которое требует определенной связи между таблицами, поэтому Access запросит создание связи, а Вы должно согласиться с этим запросом. 3. Структуры остальных таблиц опишите самостоятельно. Учтите, что в таблице палаты поле "Комфортабельность" будет логического типа, а в таблице "Пациенты" поля "№ палаты", "№ паспорта лечащего врача" необходимо сделать с помощью мастера подстановок.
Связи между таблицами
Свяжем созданные структуры таблиц между собой. Для этого откройте схему данных. Добавьте туда все структуры таблиц и организуйте следующие связи (см. рис. 2.5).
Там где связи есть, щелкните по ним правой кнопкой мыши и установите в свойствах целостность данных. Обратите внимание на то, что при создании новой связи связываемое поле переносится на связуемое при нажатой левой клавише мыши. Затем в свойствах указывается обеспечение целостности данных. Связь 1↔1 организуется, когда ключевое поле связывается с ключевым. Связь 1↔ организуется, когда ключевое поле связывается с неключевым.
Создание форм ввода. Подчинение в формах ввода
Создадим формы ввода данных. Создадим общую форму ввода для данных по врачам и заполнения сменного табеля. Для этого перейдите в закладку Формы, а затем выберите команду "Создать". Нашу форму мы будем создавать в режиме Мастера форм. В появившемся диалоговом окне (см. рис. 2.6) перекиньте все поля из таблицы врачи и все поля из таблицы "Учет отработанных смен", а затем удалите поле "№ паспорта" из таблицы "Учет отработанных смен". Затем выберете расположение полей в виде ленты. Если вы откроете получившуюся форму, то заметите, что расположение не слишком удобно, поэтому необходимо открыть полученную форму в "конструкторе" и расположите объекты так, как показано на рис. 2.7. Создадим подчиненную форму ввода для заполнения таблиц "Палаты" и "Пациенты". Для этого в мастере создания форм укажем (перекинем) сначала все поля таблицы "Палаты", а затем таблицы Пациенты". После чего поле "№ палаты" из таблицы "Пациенты" необходимо убрать, то есть перекинуть обратно. Затем в появившемся диалоговом окне укажите, что форма будет подчиненной (см. рис. 2.8).
Через созданные формы ввода заполните ваши таблицы так, чтобы палаты оказались на 50 % заполнены, и было не менее 10 врачей.
2.2. Создание запросов к многотабличной базе данных
Простые запросы
1. Создать запрос, отражающий следующую информацию: ФИО пациента, дату его рождения, № палаты, количество мест в палате, фамилию лечащего врача, его категорию и специальность.
Для того, чтобы создать запрос на выборку определенных полей необходимо в окне баз данных щелкнуть по закладке запросы, где выбрать команду создать. Создаваемый запрос будет простым, что необходимо отметить в появившемся диалоговом окне. Первоначально простой запрос будет иметь следующую структуру (см. рис. 2.9)
В появившемся диалоговом окне необходимо выбирать нужную таблицу и выбирать с помощью кнопок со стрелками нужные поля. Сначала выберем таблицу "Пациенты" и "перекинем" нужные поля: фамилия, имя, отчество, дата рождения, номер палаты; затем таблицу "Палаты" и поле количество мест; в таблице "Врачи" поля: фамилия, специальность, категория. После этого нажимается кнопка "Готово".
2. Создать запрос, вычисляющий количество общее количество смен отработанных 12 числа в месяце.
Для того, чтобы создать простой запрос с подведением итогов после выбора поля "12" в таблице "Учет отработанных смен врачей" необходимо нажать кнопку "Далее", а затем как показано на рис 2.10. определить, что запрос будет с подведением итогов и подвести необходимый итог суммирования (Sum).
Создание запросов в конструкторе
Запросы на выборку с условием
1. Создать запрос, отбирающий хирургов или невропатологов, чья фамилия начинается с буквы "С".
Для этого щелкните по закладке Запросы, выберите команду Создать и укажите, что будете создавать запрос в режиме конструктора. После этого необходимо добавить те таблицы, по которым будет создаваться запрос (в нашем случае источником будет таблица "Врачи") и нажать кнопку "Закрыть". Итак, перед вами конструктор запросов. Сначала необходимо выставить все нужные поля (см. рис. 2.11).
Рис. 2.11
Далее, когда все нужные поля выставлены, определим вывод их на экран (наличие флажка в соответствующей строке) и зададим нужные условия. Первое условие касается фамилии. Следовательно, условие должно быть прописано в столбце "Фамилия" в строке "Условие отбора:". Наше условие заключается в том, чтобы первая буква фамилии была "С", а затем следовали любые другие. Любой символ заменяется в Access на значок * (см. рис. 2.12). Рис. 2.12
Второе условие касается специальности врачей, следовательно, должно быть записано в столбце специальность. Само условие заключается в том, что должны быть выбраны из всех врачей хирурги или невропатологи. Для этого будем использовать логическую функцию Or (Или) (см. рис. 2.12).
Чтобы запрос был выполнен нажмите на панели инструментов кнопку с восклицательным знаком, кроме того, вам могут потребовать следующие кнопки (см. рис. 2.13).
2. Создать запрос выбирающих палаты, в которых не менее 3 мест.
Для создания этого запроса также будем использовать конструктор. В качестве источника укажем таблицу "Палаты". Условие запроса касается количества мест в палате, поэтому условие будем писать в соответствующем столбце. Так как количество мест должно быть не менее 3, то условие запишется: >3.
Запросы с параметром
1. Создать запрос, отображающий всю информацию о пациенте после ввода его фамилии.
Параметром в запросе считается любая информация, вводимая пользователем с клавиатуры во время выполнения запроса. Запросы с параметром создаются в конструкторе. Обращение к параметру внутри запроса идет по имени, которое пишется в квадратных скобках. Обратите внимание на то, что если параметр не текстового типа, то его необходимо дополнительно определить в меню Запрос  Параметры.
В нашем случае параметр - это фамилия пациента - текстовое поле, причем оно является условием отбора, следовательно, запрос будет выглядеть следующим образом (см. рис. 14):
Запросы на вычисление
1. Создать запрос, рассчитывающий количество отработанных смен для каждого из врачей. Для этого в конструктор добавим таблицу "Врачи" и "Учет отработанных смен". Выставим поле фамилия из таблицы "Врачи" и в свободном столбце вызовем построитель выражений, где необходимо выбрать нужную таблицу, в которой можно выделять любые поля. Для вставки полей в выражение используйте кнопку "Вставить"(см. рис. 2.15). В строке выражений Необходимо записать сумму всех полей по модулю (abs()).
Запросы на вычисление с использованием встроенных функций
1. Создать запрос, вычисляющий срок пребывания пациентов в больнице.
Для организации этого запроса добавим в конструктор таблицу "Пациенты". Выставим поле "Фамилия" из таблицы пациенты, и построим поле Срок пребывания в больнице. Для этого будем использовать встроенную функцию Date(), которая определяет текущую дату (см. рис. 2.16.)
Рис. 2.16.
2. Создать запрос, высчитывающий заработную плату врачей, из расчета, что ставка за смену по 1 категории 650 р., по второй - 480 р., по третьей и четвертой - 320 р.
Для вычисления заработной платы будем использовать встроенную функцию управления: IIf(<Условие>; <Действие 1>; <Действие 2>). Условие - это логическое выражение, которое может принимать значение ложь или истина; действие 1 - это действие, которое выполняется, когда условие верно, а действие 2 - это действие, которое выполняется, когда условие неверно.
Таким образом, в построитель выражений у вас должно быть внесено:
Заработная плата: IIf([Врачи]![Категория]=1;[Количество смен]![Общее количество смен]*650; IIf([Врачи]![Категория]=2; [Количество смен]![Общее количество смен]*450;[Количество смен]![Общее количество смен]*320))
Запросы на вычисление с использованием групповых операций
1. Вычислите количество пациентов в каждой палате. Для создания этого запроса необходимо добавить в конструктор таблицы "Пациенты" и "Палаты".
Для вычисления количества пациентов в палатах воспользуемся групповыми операциями (см. прил.2), которые выбираются в контекстном меню (после щелчка правой кнопкой мыши). Сгруппируем палаты по номерам (выберем в списке операцию группировка) и вычислим количество фамилий, относящихся к каждой из палат (Count) (см. рис. 2.17)
Рис. 2.17
Запросы на действие
1. Запрос, удаляющий запись о пациенте после его выписки (если дата выписки предшествует сегодняшнему числу, следовательно, запись должна быть удалена).
Для создания запроса на действие необходимо конструктор добавить таблицу "Пациенты" и в меню Запросы определить тип запроса - на удаление. После этого необходимо, что удаляться должна фамилия, если дата выписки меньше текущей (см. рис. 18) Задание для самостоятельной работы
1. Выберите номера всех комфортабельных палат, в которых более одного места.
2. Выберите всех пациентов старше 30 лет, чья фамилия начинается с буквы "П" (с любой другой буквы).
3. Создайте запрос с параметром, который после ввода № палаты выдавал информацию о количестве мест в ней и о количестве свободных из них.
4. Создайте запрос, характеризующий каждую палату на наличие мест: есть в ней места (да) или нет.
5. Вычислите количество специалистов каждого рода в больнице (количество хирургов, невропатологов и т. д.)
6. Выведите фамилии пациентов, которые провели уже в больнице более 14 дней.
7. Удалить записи о врачах, чья категория 4. 2. 3. Создание форм и отчетов к многотабличной базе данных
Создайте с помощью мастера форм не менее 4 форм к запросам. Отредактируйте расположение объектов в форме в конструкторе. В режиме конструктора форма имеет вид (см. рис. 2.20). Вам необходимо на каждой из форм выделить все три области (заголовка, данных, примечания). Если какой-то из областей нет, ее можно добавить в меню Вид. В область заголовка внесите соответствующую надпись, а в области примечания создайте кнопку выхода. Для создания заголовка и кнопок используйте панель ToolBox (см. рис. 2.19)
Рис. 2.20.
При создании кнопки, если включен режим мастеров появляется диалог, где необходимо выбрать каким объектом будет управлять кнопка в разделе категории, а затем в разделе действия указать, какое именно действии с формой должна производить кнопка (см. рис. 2.21).
Рис. 2.21
Для создания отчетов будем также использовать мастер. Создадим отчет по врачам с группировкой по специальности и подведению итогов по заработной плате. Данный отчет следует создавать по отчету, в котором мы рассчитывали заработную плату врачей (укажем его в качестве источника). После этого следует перекинуть все поля и нажать кнопку "Далее".
В появившемся диалоговом окне необходимо указать поле группировки. В нашем случае полем группировки будет специальность (см. рис. 2.22).
После выбора поля группировки нажимается кнопка "Далее" и указывается, что будут подводиться итоги аналогично простому запросу с итогами (см. рис. 2.22). Задание для самостоятельной работы
1. Создайте отчет по сроку пребывания пациентов в больнице с группировкой по номеру палаты.
2. Создайте в конструкторе одну кнопочную форму, с которой бы открывались все остальные формы.
Вопросы к заданию
1. Чем отличается создание однотабличной и многотабличной базы данных в Access?
2. В чем преимущество полей созданных средствами мастера подстановок? При каких условиях они создаются?
3. Какие виды связей предусмотрены в Access?
4. При каких условиях возможно создание подчиненных форм.
5. Составьте общую характеристику всех видов запросов, создаваемых в Access.
6. Опишите функции управления, используемые в Access.
7. Опишите основные групповые операции, используемые в Access.
8. Какие основные разделы форм и отчетов вы знаете.
9. Какие основные операции с формами отчетами можно делать средствами управляющих кнопок.
10. Перечислите и кратко опишите основные элементы панели инструментов ToolBox.
Автор
Tunkov
Документ
Категория
Без категории
Просмотров
214
Размер файла
256 Кб
Теги
глава
1/--страниц
Пожаловаться на содержимое документа