Файл: Освой самостоятельно программирование для MS Access 2002 за 24 часа [П.Киммел].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.10.2020
Просмотров: 7875
Скачиваний: 25

7. Изменения в структуре проекта вы сможете увидеть, если откроете дочернее окно
Project Explorer среды Microsoft Visual Basic (рис. 23.1).
.9
X
CD
contact*
•
Kan
C.
Создав ссылку, вы сможете использовать в новом проекте ранее состав-
ленный код
После построения ссылки код адресуемой базы данных становится доступным для
решения задач, связанных с текущей базой. Это удобный способ повторного исполь-
зования кода (в том числе, кода надстроек), исключающий необходимость выполне-
ния операций экспорта и импорта модулей.
и отключение надстроек
После создания и тестирования кода надстройки вы можете установить его в среде
Access. Откройте базу данных
и откомпилируйте код модуля
LogUtilities — его полный текст приведен в листинге 23.6.
Листинг 23.6. Полный текст модуля LogUtilities
1: Option Compare Database
2 : Option Explicit
3:
4: Function
5: Call
acViewNormal,
6 : End Function
7:
8:
420
Часть VIII.
программирование в Access

9: Property Get
)
As
String
10: UserName =
0
Property
Function
()
As
String
14: CreateLogQuery =
"CREATE TABLE LOG
&
PRIMARY KEY, ERROR_ID NUMBER,
&
17: "SOURCE
DESCRIPTION
HELPFILE TEXT
S _
18:
NUMBER, WHEN DATETIME, USER
Function
20:
Sub
22: Call
Sub
24:
Sub
Error As ErrObject,
26: Optional UserName As String = "Admin")
27:
28: With Err
29: Call
30: .HelpFile,
End With
End Sub
33:
Function
TableName As
As Boolean
35:
36: Dim Table As Variant
37:
38: For Each Table In
39: TableExists =
= TableName
40: If (TableExists) Then Exit For
41: Next Table
Functuin
44:
Sub
Number As Long,
ByVal Source As String,
46: ByVal Description As String, ByVal HelpFile As String,
ByVal HelpContext As Long, Optional UserName As String )
48:
49: On Error GoTo EXCEPT
50:
Source, Description,
51: HelpFile, HelpContext, UserName)
53: Exit Sub
55: If (Not
Then
56: Call CreateTable
Resume
58: Else
59: Call
60:
61: End If
62
Sub
63:
23-й час. Надстройки Access 421

Sub
(
Number As Long,
65: ByVal Source As String, ByVal Description As String,
ByVal HelpFile As String, ByVal HelpContext As Long,
Optional
As String)
68:
69: Dim SQL As String
70: SQL = "SELECT * FROM LOG"
Dim Recordset As New
72: Call
) = Number
"SOURCE" ) = Source
"DESCRIPTION" ) = Description
"HELPFILE" ) = HelpFile
"HELPCONTEXT" ) = HelpContext
"WHEN" ) = Now
"USER" ) = UserName
Recordset (
Set Recordset = Nothing
Практически весь этот код вам уже знаком, за исключением свойства
UserName, в котором вызывается глобальный метод
Rrent-
ser. Набирая текст в окне модуля, сопоставляйте его с содержимым
листинга 23.6.
Перед
кода проверьте, чтобы база данных
была открыта. В
окне редактора Microsoft Visual Basic выберите команду
Если система
выдаст сообщения об ошибках компиляции, у вас появится шанс их исправить. Пре-
жде чем установить созданную надстройку в среде Access, необходимо выполнить еще
несколько операций, о чем речь пойдет в следующем разделе.
Создание таблицы с данными о регистрации
Каждая надстройка Access требует наличия таблицы
которая содер-
жит сведения, необходимые системе для создания определенных ключей реестра Win-
dows. Таблица USysReglnfo может быть построена в базе данных Log.mda с помо-
щью процедуры SQL. Ее текст приведен в листинге 23.7.
Листинг 23.7. Процедура создания таблицы USysReglnfo, которая необходима для
регистрации надстройки, устанавливаемой в Access
1: CREATE TABLE USysReglnfo
(SubKey
3: Type Number,
ValName
5: Value
I Текст листинга 23.7 не нуждается в подробных разъяснениях, за
I чением разве что квадратных скобок. Поскольку существует ключевое
слово Value, чтобы сообщить Access о необходимости создания поля с
таким именем,
название необходимо заключить в квадратные скобки.
422
Часть VIII. Объектно-ориентированное программирование в Access

После того, как таблица построена, вы должны добавить в нее три записи, содер-
жащие данные о так называемой точке входа надстройки и местоположении ее файла
на диске. Содержимое каждого из полей всех записей таблицы
пред-
ставлено в табл. 23.1.
Если вы не видите таблицу USysReglnfo, выберите команду
Параметры
перейдите на вкладку Вид (View) и устано-
вите флажок Системные объекты (System Objects).
Таблица
Содержимое полей таблицы USysReglnfo
SubKey
Type ValName Value
0
1
1
Expression
Library
|ACCDIR\Log.mda
Первая запись таблицы USysReglnfo (описанная первой же строкой табл. 23.1) ис-
пользуется для создания ключа регистрации надстройки Log. Вторая запись определяет
функцию из состава надстройки, вызываемую при щелчке на том элементе меню
который появляется после установки надстройки в Access. Третья за-
пись указывает место расположения файла надстройки на диске компьютера. В поле
Value третьей записи следует сохранить значение
Конструкция
служит обозначением стандартной папки для размещения надстроек, предусмот-
ренной в Access. Обычно это flMCK\Windows\Application
где
Диск — буква дисковода, на котором располагаются файлы операционной системы Win-
dows. Важно помнить, что профамма диспетчера при установке надстроек в Access создает
копии
файлов в папке
надстройки
Инсталляция надстройки производится с помощью средств диспетчера надстроек
Access, диалоговое окно которого показано на рис. 23.2. Чтобы установить надстройку
в Access,
действия.
н
Рис. 23.2. Диалоговое окно диспет-
чера надстроек Access
1. Загрузите Access.
2. Выберите в строке меню команду
надстроек
Manager).
час. Надстройки Access
423

3.
на кнопке Добавить (Add New) диалогового окна Диспетчер надстроек, с
помощью средств навигации диалогового окна Открытие надстройки (Open) просле-
дуйте к файлу
выберите его и щелкните на кнопке Открыть (Open).
4. Убедитесь, что в список Доступные надстройки (Available
окна Диспетчер
надстроек добавлена запись с наименованием надстройки и предшествующим сим-
волом х. Кроме того, кнопка Установить (Install) должна изменить свое название на
Удалить
Щелкните на кнопке Закрыть.
Если после установки надстройки Log.mda возникли проблемы, необ-
ходимо ее деинсталлировать, закрыть Access и удалить копию базы дан-
ных Log.mda из папки надстроек. По умолчанию это папка
and
Data\Micro-
где
необходимо заменить
действительным именем пользователя.
Внесите изменения в исходную базу данных, вновь установите над-
стройку и проверьте правильность ее работы.
Чтобы проверить корректность установки надстройки, протестируйте ее. Откройте
меню
— в нем должен появиться новый элемент (в нашем
случае — Log), который следует выбрать. Если надстройка Log установлена правиль-
но, вы получите сообщение об ошибке подобного содержания: Приложению
soft
не удается найти объект
He расстраивайтесь, это нор-
мально — надстройка работает и пытается открыть для просмотра таблицу LOG, но,
поскольку никакое приложение еще не тестировалось (и не провоцировало ошибок),
таблица LOG в базе данных еще не создана.
Модификация и удаление надстройки
Удалить надстройку из среды Access (как и выполнить любое другое действие, на-
правленное на разрушение, а не созидание) очень просто. Достаточно с помощью ко-
манды
надстроек открыть диалоговое окно Диспетчер
надстроек, выбрать нужную (или, точнее, уже ненужную) надстройку и щелкнуть на
кнопке Удалить. Чтобы внести в настройку какие-либо изменения, первым делом
следует выгрузить все экземпляры Access и физически удалить соответствующий файл
из папки
Завершив модификацию надстройки, повторите все описанные вы-
ше действия по ее установке.
Теперь, когда у вас есть удобное орудие "отлова" ошибок, пора отправиться на
охоту, т.е. попробовать протестировать инструмент на практике.
Применение надстройки для ведения
протокола ошибок
Каждую собственную базу данных вы можете снабдить средством ведения протокола
ошибок, которое окажется в равной степени полезным и во время разработки приложе-
ний, и в период их эксплуатации. Часто происходит так, что пользователи, мельком
взглянув на окно сообщения об ошибке и не утруждая себя излишними размышления-
ми, щелкают на кнопке ОК и пытаются продолжить работу. В результате спохватывают-
ся только тогда, когда программы терпят полное фиаско. Обладая инструментом веде-
ния журнала ошибок, вы всегда, даже спустя некоторое время, сможете восстановить
картину происшедшего, выявить причины сбоев и принять соответствующие меры.
424 Часть VIII.
программирование в Access