Программа Microsoft Access - электронное пособие access.my-study.info

Пример базы данных "Поликлиника" (Access)

Структура базы данных

В примере выбрана очень простая структура базы данных:
- таблица врачей (Doctors);
- таблица клиентов (Patients);
- таблица посещений клиентами врачей (Visits).
Скачать пример базы данных "Поликлиника" (далее будут предлагаться примеры с изменениями, но для обучения работе с базой данных крайне полезно иметь исходную версию, не заграможденную объектами (таблицами, запросами...)).

Две первые таблицы - независимы друг от друга, заполняются предварительно или по мере необходимости. Также они служат источниками записей для таблицы посещений. ID третьей таблицы служит номером для талончика к врачу.

Объекты базы данных

Кроме перечисленных выше таблиц в базе есть две формы (главная и для заполнения двух таблиц - врачей и пациентов). Также в базе есть один отчет - талончики к врачу.

Работа с базой данных "Поликлиника"

Прежде чем вы сможете выписать конкретному пациенту талончик к конкретному врачу (таблица Visits), необходимо наличие этих пациента и врача в таблицах Patients и Doctors соответственно. В главной форме включена таблица, куда заносятся данные о визите пациента к врачу, но она не обновляется автоматически. Чтобы увидеть вновь "занесенных" врача или пациента в выпадающих списках необходимо закрыть и снова открыть главную форму. На самом деле не обязательно заносить данные в главной форме. После того, как базе данных были указаны связи между таблицами при создании записи "врач" или записи "пациент" мы имеем возможность создать "визит" в той же самой таблице (обратите внимание на появляющийся слева после создания записи "врач" или "пациент" крестик, кликнув по которому, вы увидите подтаблицу визитов к врачу; номер талончика (visitID) будет создаваться автоматически и он будет уникальным). Чтобы это происходило "само собой", мы объединили таблицы, точнее установили связи между полями таблицы. Access позволяет связывать между собой таблицы легко и непринужденно.

Связи таблиц в базе данных

А именно: поле visitDoctor выбирает запись из таблицы Doctors, а поле visitPatient - из таблицы Patients. Чтобы связать таблицы, необходимо найти значок на панели, обозначающий связи таблиц (обведено красным) или кликнуть правой мышкой на любом свободном месте окна базы данных и выбрать "Связи" ("Relationships").

Вот как это выглядит:

Для тренировки вы можете удалить и создать связь. Для этого кликните правой мышкой на линии обозначающей связь таблиц, выберите "Удалить" ("Delete") (сами таблицы или формы, отчеты в которых используется одна из таблиц должны быть закрыты). Теперь создадим связь: нажимаем курсором на ключевом поле patientID таблицы Patients (если вы связь удалили с этой таблицей), не отпуская мышки тянем ее к полю visitPatient таблицы Visits, когда курсор изменится, отпускаем и работаем с появившимся диалоговым окном Access(ставим галочку, как на рисунке):

Подсчет стоимости предоставленных услуг в базе данных "Поликлиника"

Первое решение, которое приходит в голову - добавить в таблицу врачей поле, в котором каждому врачу сопоставить стоимость его услуг. Но если хоть немного подумать, то будет понятно, что стоимость может меняться со временем, а нам желательно сохранять цены за разные периоды, хотя бы для статистики. Значит, необходимо создать новую таблицу в нашей базе данных. Структура таблицы VisitCosts. Кроме ключевого поля visitCostID нам как минимум понадобятся следующие поля:
- visitCostDoctorID - "внешний ключ" (врачи)
- visitCostFrom - дата, с которой стоимость приема действительна
- visitCostTill - дата, до которой стоимость приема действительна
- visitCostValue - стоимость приема в выбранный период.

Теперь создадим форму для работы с этой таблицей (frmMoney, в эту форму мы будем собирать и другую финансовую информацию, касающуюся поликлиники) (мы можем, конечно, и напрямую заполнять эту таблицу, но удобнее с ней работать как с подчиненной).

Скачать изменения в базе данных "Поликлиника" (на 06.11.2008).

Следующий урок: Подсчет стоимости услуг в базе данных "Поликлиника".

© - Создание базы данных в Microsoft Access