Проектирование реляционной базы данных методом «Сущность – связь».Освоение метода «сущность – связь», страница 6

End If

End Sub

Private Sub Поле4_LostFocus()

If (Me.Поле4.text = "") Then

MsgBox ("Введите ноаер паспорта пациента")

Me.Кнопка18.Enabled = False

flag3 = 1

Else

flag3 = 0

Me.Кнопка18.Enabled = True

End If

End Sub

Private Sub Поле7_LostFocus()

If (Me.Поле7.text = "") Then

MsgBox ("Введите домашний адрес")

Me.Кнопка18.Enabled = False

flag4 = 1

Else

flag4 = 0

Me.Кнопка18.Enabled = True

End If

End Sub

Private Sub ПолеСоСписком12_LostFocus()

If (Me. ПолеСоСписком 12.text = "") Then

MsgBox ("Выберите пол пациента")

Me.Кнопка18.Enabled = False

flag5 = 1

Else

flag5 = 0

Me.Кнопка.Enabled = True

End If

End Sub

Форма 2. Организация процесса приема больного: выбор больного (при этом должны отобразиться данные об его предыдущих заболеваниях и датах сдачи крови и флюорографии), указание болезни (если ею занимается не терапевт, то направление больного к специалисту, в противном случае назначение даты повторного прихода и лечение);

Рис. 9.

Для блокировки даты перенаправления при обращении с болезнью, которую лечит терапевт, и блокировки дат повторного прихода и выздоровления при обращении с болезнью, которую терапевт не лечит, на событие «После обновления» поля со списком ilnessID написана следующая процедура:

Private Sub ilnessID_AfterUpdate()

Set db = CurrentDb

Set REC = db.OpenRecordset("Illness", dbOpenDynaset)

REC.MoveFirst

Do Until REC.EOF

If Me.ilnessID = REC.[illnessID] And REC.[SpecID] = 2 Then

Me.OkDate.Enabled = True

Me.ComingAgainDate.Enabled = True

Me.GoAwayDate.Enabled = False

GoTo M

Else

Me.GoAwayDate.Enabled = True

Me.OkDate.Enabled = False

Me.ComingAgainDate.Enabled = False

End If

REC.MoveNext

Loop

M:

If IsNull(Me.ComingAgainDate) Or IsNull(Me.OkDate) Or IsNull(Me.GoAwayDate) Then

MsgBox ("Введите даты")

Forms("Form2drug").Поле16 = Me.ilnessID

REC.Close

db.Close

End Sub

Для организации приема не только старых, но и новых пациентов, которых нет в таблице patient, при внесении новой фамилии организован автоматический вызов формы1 для внесения данных о новом пациенте. Вызов организуется с помощью следующего кода:

Private Sub ПолеСоСписком0_NotInList(NewData As String, Response As Integer)

If NotInList("ПолеСоСписком0", NewData) Then

DoCmd.OpenForm "new1"

Response = acDataErrAdded

End If

End Sub

Function NotInList(text As String, ByRef NewData As String) As Boolean

NotInList = False

otvet = MsgBox("Добавить новый" & NewData & " ?", vbOKCancel, " Подтверждение добавления")

If otvet = vbOK Then

NotInList = True

End If

End Function

Форма 3. Просмотр и редактирование списка лекарств и процедур для выбранной болезни (которой занимается терапевт);

Рис. 10.

Форма 4. Изменение данных о пациенте.

Рис. 11.


Список литературы

1. Горев а., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. – СПб.: Питер, 19997. – 704 с.

2. Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 2000. – 848 с.

3. Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ: Пер. с англ. – М.: Мир, 1991. – 252 с.

4. Диго С.М. Проектирование и использование баз данных: Учебник. – М.: Финансы и статистика, 1995. – 208 с.

5. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ.: Уч. пос. – М.: Издательский дом «Вильямс», 2000. – 1120 с.

6. Мейер Д.  Теория  реляционных  баз  данных: Пер. с англ. – М.: Мир, 1987. – 608 с.

7. Хансен Г., Хансен Д. Базы данных: разработка и управление: Пер. с англ. – М.:ЗАО «Издательство БИНОМ», 1999. – 704 с.

8. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. Проф. А.Д. Хомоненко. – СПб.: КОРОНА принт, 2000. – 416 с.

9. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. Проф. А.Д. Хомоненко. – Издание второе, дополненное и переработанное – СПб.: КОРОНА принт, 2002. – 672 с.