Программирование >>  Проектирование интерфейса пользователя 

1 ... 130 131 132 [ 133 ] 134 135 136 ... 153


9: Property Ge Name { ) As String 10: UserName = Workspaces ( 0 ). UserName 11:End Property 12 :

Function () As String

14: CreateLogQuery =

15: CREATE TABLE LQG &

16: (ID AUTOINCREMENT PRIMARY KEY, ERRQR ID NUMBER, &

17: SQURCE TEXT{50), DESCRIPTIQN TEXT(255), HELPFILE TEXT (255),

S

18: HELPCONTEXT NUMBER, WHEN DATETIME, USER TEXT (25));

19:End Function

21:Private Sub CreateTable()

22: Call DoCmd.RunSQL(CreateLogQuery)

23:End Sub

25:Public Sub WriteErrorEntry(ByVal Error As ErrQbject, 26: Optional UserName As String = Admin )

27 :

28: With Err

29: Call WriteEntry(.Number, .Source, .Description,

30: .HelpFile, -HelpContext, UserName)

31: End With 32: End Sub 33 :

34:Private Function TableExists(ByVal TableName As String)

As Boolean

35: 36: 37: 38: 39: 40: 41:

42 :

43 : 44: 45:

46: 47 :

50: 51: 52: 53 : 54: 55:

56: 57:

59: 60: 61:

Dim Table As Variant

For Each Table In CurrentData.AllTables

TableExists = Table. Name = TableName

If (TableExists) Then Exit For Next Table

End Functuin

Public Su ry (ByVal Number As Long,

ByVal Source As String, ByVal Description As String, ByVal HelpFile As String, ByVal HelpContext As Long, Optional UserName As String )

Qn Error GoTo EXCEPT

.Call DoWriteEntry(Numbe Source, Description, HelpFile, HelpContext, UserName)

Exit Sub EXCEPT:

If (No ts ( LOG ) ) Then

Call CreateTable Resume

Else

Call Err.Raise(Err.Number, LogUtilities.WriteEntry , Err.Description)

End If

62 -End Sub

63 :



68: 69 : 70: 71

73 74

75 76 77 73 79 80 81 82 83 84 85

Private Su eEntry Val Number As Long,

ByVal Source As String, ByVal Description As String, ByVal HelpFile As String, ByVal HelpContext As Long, Optional UserName As String)

Dim SQL As String

SQL = SELECT * EROM LOG

Dim Recordset As New ADODB.Recordset

Call Recordset.Open(SQL, CurrentProject.Connection

adOpenDynamic, adLockPessimistic) Recordset.AddNew

Recordset( ERROR ID ) = Number SOURCE ) = Source DESCRIPTION ) = Description HELPFILE ) = HelpFile HELPCONTEXT ) = HelpContext = Now UserName

WHEN USER

Recordset( Recordset(

Recordset( Recordset( Recordset( Recordset( Recordset.Update Recordset.Close Set Recordset = Nothing

End Sub

Практически весь этот код вам уже знаком, за исключением свойства UserName, в котором вызывается глобальный метод Application. Rrent-ser. Набирая текст в окне модуля, сопоставляйте его с содержимым листинга 23.6.

Перед кода проверьте, чтобы база данных была открыта. В

окне редактора Microsoft Visual Basic выберите команду Debug=>Compile. Если система выдаст сообщения об ошибках компиляции, у вас появится шанс их исправить. Прежде чем установить созданную надстройку в среде Access, необходимо выполнить еще несколько операций, о чем речь пойдет в следующем разделе.

Создание таблицы с данными о регистрации

Каждая надстройка Access требует наличия таблицы которая содер-

жит сведения, необходимые системе для создания определенных ключей реестра Windows. Таблица USysReglnfo может быть построена в базе данных Log.mda с помощью процедуры SQL. Ее текст приведен в листинге 23.7.

Листинг 23.7. Процедура создания таблицы USysReglnfo, которая необходима для регистрации надстройки, устанавливаемой в Access

1: 2: 3 : 4: 5: 6:

CREATE TABLE USysReglnfo (SubKey Text(255), Type Number, ValName Text (50), Value Text(50) ) ;

Il Текст листинга 23.7 не нуждается в подробн1х разъяснениях, за исклю-l чением разве что квадратных скобок. Поскольку существует ключевое слово Value, чтобы сообщить Access о необходимости создания поля с таким именем, название необходимо заключить в квадратные скобки.



После того, как таблица построена, вы должны добавить в нее три записи, содержащие данные о так называемой точке входа надстройки и местоположении ее файла на диске. Содержимое каждого из полей всех записей таблицы USysReglnfo представлено в табл. 23.1.

Если вы не видите таблицу USysReglnfo, выберите команду Сервис=> Параметры (ToolsOptions), перейдите на вкладку Вид (View) и установите флажок Системные объекты (System Objects).

Таблица .1. Содержимое полей таблицы USysReglnfo

SubKey

Type

ValName

Value

HKEY CURRENT ACCESS PROFILE\MenuAdd-lns\Log HKEY CURRENT ACCESS PROFILE\MenuAdd-lns\Log HKEY CURRENT ACCESS PROFILE\MenuAdd-lns\Log

0 1 1

Expression brary

=EntryPoint()

ACCDIR\Log.mda

Первая запись таблицы USysReglnfo (описанная первой же строкой табл. 23.1) используется для создания ключа регистрации надстройки Log. Вторая запись определяет функцию из состава надстройки, вызываемую при щелчке на том элементе меню СервисНадстройки, который появляется после установки надстройки в Access. Третья запись указывает место расположения файла надстройки на диске компьютера. В поле Value третьей записи следует сохранить значение IACCDlR\Log.mda. Конструкция IACCDIR служит обозначением стандартной папки для размещения надстроек, предусмотренной в Access. Обычно это flMCK\Windows\Application Data\Microsof t\AddIns, где Диск - буква дисковода, на котором располагаются файлы операционной системы Windows. Важно помнить, что профамма диспетчера при установке надстроек в Access создает копии файлов в папке Addlns.

Установка надстройки

Инсталляция надстройки производится с помощью средств диспетчера надстроек Access, диалоговое окно которого показано на рис. 23.2. Чтобы установить надстройку в Access, выполните следующие действия.

Списание недйстут

Рис. 23.2. Диалоговое окно диспетчера надстроек Access

1. Загрузите Access.

2. Выберите в строке меню команду Сервис=> Надстройки Диспетчер надстроек .(Tools=C>Add-InsOAdd-In Manager).



1 ... 130 131 132 [ 133 ] 134 135 136 ... 153

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика