1. Алгоритмические языки и программирование. Система программирования DELPHI: учеб. пособ. для вузов / разраб. Т.А.Лабзиной. - М: Совр. Гум. Ун-т, 2005.
2. Ахангельский А.Я. Программирование в Delphi 7. – М.: ООО «Бином-Пресс», 2003 г. – 1152с.
3. Гайдамакин Н.А. Автоматизированные информационные системы, банки и базы данных. Вводный курс: учебное пособие. - М: Гелиос АРВ, 2004.- 368 с.
4. Голицына О.Л. и др. Языки программирования: учеб. пособие для ссузов / О.Л.Голицына, Т.Л.Партыка, И.И.Попов. - М: Форум; Инфра-М, 2008.
5. Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 784с: ил.
6. Емельянова Н.З., Партыка Т.А., Попов И. Основы построения автоматизированных информационных систем: учебное пособие для студ. СПО. - М: Форум; Инфра-М, 2005.- 416 с.
7. Карпова Т. Базы данных. Модели, разработка, реализация: учеб. пособие. - СПб: Питер, 2008.- 304 с.
8. Моисеенко С. SQL: задачи и решения. - СПб: Питер, 2006.-256 с.
9. Основы автоматизированных информационных систем: Автоматизированные информационные системы (АИС): учеб. пособ. для вузов / разраб. В.Н.Кузубовым. - М: Совр. Гум. Ун-т, 2005.
10. Основы автоматизированных информационных систем. Обеспечение автоматизированных информационных систем: учеб. пособ. для вузов / разраб. В.Н.Кузубовым. - М: Совр. Гум. Ун-т, 2010.
11. Принципы построения автоматизированных информационных систем (АИС). Техническое и рабочеее пректирование АИС: учеб. пособие для вузов / разраб. В.Н.Кузубовым. - М: Совр.Гум.Ун-т, 2010.-102 с.
12. Семакин И.Г., Шестаков А.П. Основы программирования: учебник для студ. СПО. - М: Академия, 2003.- 438 с.
13. Сорокин А.В. Delphi. Разработка баз данных. – СПб.: Питер, 2005. – 477с.: ил. Издательский дом «Вильямс», 2005. – 336 с.: ил. – Парал. тит. англ.
14. Тейлор Аллен Дж. SQL для «чайников», 5-е издание.: Пер. с англ. – М.:
15. Фаронов В.В. Система программирования Delphi. - СПб: БХВ-Петербург, 2004.- 912 с.
16. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: учебник для вузов / под ред. А.Д.Хомоненко.- 3-е изд. - СПб: Корона-Принт, 2003.- 672 с.
Приложения
Приложение 1
SQL-режим запросов:
Дата посещения:
SELECT Специалисты.фамилия AS Специалисты_фамилия, Специалисты.специальность, Пациенты.фамилия AS Пациенты_фамилия, Прием.[дата посещения]
FROM Специалисты INNER JOIN (Пациенты INNER JOIN Прием ON Пациенты.[код пациента] = Прием.[код пациента]) ON Специалисты.[код специалиста] = Прием.[код специалиста];
Дата приема по фамилии врача:
SELECT Специалисты.фамилия, Прием.[дата посещения], Пациенты.фамилия
FROM Специалисты INNER JOIN (Пациенты INNER JOIN Прием ON Пациенты.[код пациента] = Прием.[код пациента]) ON Специалисты.[код специалиста] = Прием.[код специалиста]
WHERE (((Специалисты.фамилия)=[Введите фамилию]));
Запрос диагноза пациента по фамилии:
SELECT Пациенты.фамилия, Прием.Диагноз, Диагноз.Диагноз
FROM Пациенты INNER JOIN (Диагноз INNER JOIN Прием ON Диагноз.Код = Прием.Диагноз) ON Пациенты.[код пациента] = Прием.[код пациента]
WHERE (((Пациенты.фамилия)=[Введите фамилию]));
Запрос по квалификации врачей:
SELECT Специалисты.фамилия, Специалисты.специальность, Специалисты.квалификация
FROM Специалисты
WHERE (((Специалисты.квалификация)=[Введите квалификацию]));
Количество пациентов в день по фамилии врача:
SELECT Прием.[дата посещения], Специалисты.фамилия, Пациенты.фамилия
FROM Специалисты INNER JOIN (Пациенты INNER JOIN Прием ON Пациенты.[код пациента] = Прием.[код пациента]) ON Специалисты.[код специалиста] = Прием.[код специалиста]
WHERE (((Прием.[дата посещения])=[Введите Дату посещения]) AND ((Специалисты.фамилия)=[Введите фамилию Специалиста]));
Стоимость приема:
SELECT Специалисты.специальность, Специалисты.[стоимость приема]
FROM Специалисты
WHERE (((Специалисты.специальность)=[Введите Специальность врача]));
Фамилия врача по дате приема:
SELECT Прием.[дата посещения], Специалисты.фамилия, Специалисты.специальность
FROM Специалисты INNER JOIN Прием ON Специалисты.[код специалиста] = Прием.[код специалиста]
WHERE (((Прием.[дата посещения])=[Введите Дату]));
Приложение 2
Форма: Окно навигации
Option Compare Database
Private Sub Form_Open(Cancel As Integer)
' Minimize the database window and initialize the form.
' Move to the switchboard page that is marked as the default.
Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'По умолчанию' "
Me.FilterOn = True
End Sub
Private Sub Form_Current()
' Update the caption and fill in the list of options.
Me.Caption = Nz(Me![ItemText], "")
FillOptions
End Sub
Private Sub FillOptions()
' Fill in the options for this switchboard page.
' The number of buttons on the form.
Const conNumButtons = 8
Dim con As Object
Dim rs As Object
Dim stSql As String
Dim intOption As Integer
' Set the focus to the first button on the form,
' and then hide all of the buttons on the form
' but the first. You can't hide the field with the focus.
Me![Option1].SetFocus
For intOption = 2 To conNumButtons
Me("Option" & intOption).Visible = False
Me("OptionLabel" & intOption).Visible = False
Next intOption
' Open the table of Switchboard Items, and find
' the first item for this Switchboard Page.
Set con = Application.CurrentProject.Connection
stSql = "SELECT * FROM [Switchboard Items]"
stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]
stSql = stSql & " ORDER BY [ItemNumber];"
Set rs = CreateObject("ADODB.Recordset")
rs.Open stSql, con, 1 ' 1 = adOpenKeyset
' If there are no options for this Switchboard Page,
' display a message. Otherwise, fill the page with the items.
If (rs.EOF) Then
Me![OptionLabel1].Caption = "На странице кнопочной формы нет элементов"
Else
While (Not (rs.EOF))
Me("Option" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText]
rs.MoveNext
Wend
End If
' Close the recordset and the database.
rs.Close
Set rs = Nothing
Set con = Nothing
End Sub
Private Function HandleButtonClick(intBtn As Integer)
' This function is called when a button is clicked.
' intBtn indicates which button was clicked.
' Constants for the commands that can be executed.
Const conCmdGotoSwitchboard = 1
Const conCmdOpenFormAdd = 2
Const conCmdOpenFormBrowse = 3
Const conCmdOpenReport = 4
Const conCmdCustomizeSwitchboard = 5
Const conCmdExitApplication = 6
Const conCmdRunMacro = 7
Const conCmdRunCode = 8
Const conCmdOpenPage = 9
' An error that is special cased.
Const conErrDoCmdCancelled = 2501
Dim con As Object
Dim rs As Object
Dim stSql As String
On Error GoTo HandleButtonClick_Err
' Find the item in the Switchboard Items table
' that corresponds to the button that was clicked.
Set con = Application.CurrentProject.Connection
Set rs = CreateObject("ADODB.Recordset")
stSql = "SELECT * FROM [Switchboard Items] "
stSql = stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn
rs.Open stSql, con, 1 ' 1 = adOpenKeyset
' If no item matches, report the error and exit the function.
If (rs.EOF) Then
MsgBox "Ошибка при чтении таблицы Switchboard Items."
rs.Close
Set rs = Nothing
Set con = Nothing
Exit Function
End If
Select Case rs![Command]
' Go to another switchboard.
Case conCmdGotoSwitchboard
Me.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" & rs![Argument]
' Open a form in Add mode.
Case conCmdOpenFormAdd
DoCmd.OpenForm rs![Argument],,,, acAdd
' Open a form.
Case conCmdOpenFormBrowse
DoCmd.OpenForm rs![Argument]
' Open a report.
Case conCmdOpenReport
DoCmd.OpenReport rs![Argument], acPreview
' Customize the Switchboard.
Case conCmdCustomizeSwitchboard
' Handle the case where the Switchboard Manager
' is not installed (e.g. Minimal Install).
On Error Resume Next
Application.Run "ACWZMAIN.sbm_Entry"
If (Err <> 0) Then MsgBox "Команда недоступна."
On Error GoTo 0
' Update the form.
Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'По умолчанию' "
Me.Caption = Nz(Me![ItemText], "")
FillOptions
' Exit the application.
Case conCmdExitApplication
CloseCurrentDatabase
' Run a macro.
Case conCmdRunMacro
DoCmd.RunMacro rs![Argument]
' Run code.
Case conCmdRunCode
Application.Run rs![Argument]
' Open a Data Access Page
Case conCmdOpenPage
DoCmd.OpenDataAccessPage rs![Argument]
' Any other command is unrecognized.
Case Else
MsgBox "Неизвестная команда."
End Select
' Close the recordset and the database.
rs.Close
HandleButtonClick_Exit:
On Error Resume Next
Set rs = Nothing
Set con = Nothing
Exit Function
HandleButtonClick_Err:
' If the action was cancelled by the user for
' some reason, don't display an error message.
' Instead, resume on the next line.
If (Err = conErrDoCmdCancelled) Then
Resume Next
Else
MsgBox "Ошибка при выполнении команды.", vbCritical
Resume HandleButtonClick_Exit
End If
End Function
Private Sub Добавление_записи_Click()
On Error GoTo Err_Добавление_записи_Click
Dim stDocName As String
stDocName = ChrW(1044) & ChrW(1086) & ChrW(1073) & ChrW(1072) & ChrW(1074) & ChrW(1083) & ChrW(1077) & ChrW(1085) & ChrW(1080) & ChrW(1077) & ChrW(32) & ChrW(1079) & ChrW(1072) & ChrW(1087) & ChrW(1080) & ChrW(1089) & ChrW(1080)
DoCmd.RunMacro stDocName
Exit_Добавление_записи_Click:
Exit Sub
Err_Добавление_записи_Click:
MsgBox Err.Description
Resume Exit_Добавление_записи_Click
End Sub
Private Sub Заметки_Click()
On Error GoTo Err_Заметки_Click
Dim stDocName As String
stDocName = ChrW(1047) & ChrW(1072) & ChrW(1084) & ChrW(1077) & ChrW(1090) & ChrW(1082) & ChrW(1080)
DoCmd.RunMacro stDocName
Exit_Заметки_Click:
Exit Sub
Err_Заметки_Click:
MsgBox Err.Description
Resume Exit_Заметки_Click
End Sub