№
Имя поля
Тип
Размер
Дес
Назначение
1
Номер читательского формуляра
Счетчик
Длинное целое
0
Индексированное поле, совпадения не допускаются
2
Фамилия
Текстовый
20
3
Имя_Отчество
40
4
Год рождения
Дата/Время
Краткий формат даты
Шаблон ввода:
99/99/00;0;_
5
Группа
Текстовый: подстановка
10
Поле со списком: таблица “Группы”
6
Домашний адрес временный
60
7
Домашний адрес постоянный
8
Телефон
15
!\(999") "000\-0000;0;_
9
Дата заведения формуляра
Шаблон: 99/99/00;0;_
Дата списания
11
Дата перегистрации
12
Фамилия отца
13
Имя_отчество отца
50
14
Место работы отца
Фамилия матери
16
Имя_отчество матери
17
Место работы матери
Таблица 1.16.
Структура таблицы “Читательский формуляр”
Числовой
Инвентарный номер книги
С плавающей точкой (8 байт)
Дата выдачи
Дата возврата
Возврат
ПРИЛОЖЕНИЕ 2
Листинг программы главной кнопочной формы
Option Compare Database
Option Explicit
Private Sub Form_LostFocus()
DoCmd.Maximize
End Sub
Private Sub Form_Open(Cancel As Integer)
' Свертывание окна базы данных,
' инициализация формы.
' Переход на страницу кнопочной формы, отмеченную для использования по умолчанию.
Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'по умолчанию' "
Me.FilterOn = True
Private Sub Form_Current()
' Обновление заголовка и заполнение
' списка команд.
Me.Caption = Nz(Me![ItemText], "")
FillOptions
Private Sub FillOptions()
' Заполнение команд для страницы
' кнопочной формы.
' Число кнопок в форме.
Const conNumButtons = 8
Dim dbs As Database
Dim rst As Recordset
Dim strSQL As String
Dim intOption As Integer
' Установка фокуса на первую кнопку формы,
' скрытие всех кнопок формы, кроме первой.
' Поле с фокусом скрыть нельзя.
Me![Option1].SetFocus
For intOption = 2 To conNumButtons
Me("Option" & intOption).Visible = False
Me("OptionLabel" & intOption).Visible = False
Next intOption
' Открытие таблицы элементов кнопочной формы,
' поиск первого элемента текущей страницы формы.
Set dbs = CurrentDb()
strSQL = "SELECT * FROM [Элементы кнопочной формы]"
strSQL = strSQL & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]
strSQL = strSQL & " ORDER BY [ItemNumber];"
Set rst = dbs.OpenRecordset(strSQL)
' Вывод сообщения при отсутствии элементов
' на странице кнопочной формы. В остальных
' случаях - заполнение страницы элементами.
If (rst.EOF) Then
Me![OptionLabel1].Caption = "Элементы кнопочной формы отсутствуют"
Else
While (Not (rst.EOF))
Me("Option" & rst![ItemNumber]).Visible = True
Me("OptionLabel" & rst![ItemNumber]).Visible = True
Me("OptionLabel" & rst![ItemNumber]).Caption = rst![ItemText]
rst.MoveNext
Wend
End If
' Закрытие набора записей и базы данных.
rst.Close
dbs.Close
Private Function HandleButtonClick(intBtn As Integer)
' Эта функция вызывается при нажатии кнопки.
' Аргумент intBtn указывает, какая кнопка была нажата.
' Константы для выполняемых команд.
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 conErrDoCmdCancelled = 2501
On Error GoTo HandleButtonClick_Err
' Поиск записи, соответствующей нажатой кнопке,
' в таблице элементов кнопочной формы.
Set rst = dbs.OpenRecordset("Элементы кнопочной формы", dbOpenDynaset)
rst.FindFirst "[SwitchboardID]=" & Me![SwitchboardID] & " AND [ItemNumber]=" & intBtn
' Если нужная запись не найдена, вывод
' сообщения об ошибке и выход из функции.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15