Вход


Главная страница >> Учебный процесс >> Конспекты >> MS Office. Руководство программиста по Visual Basic для MS Office 97 >> DAO - Data Access Objects >> Использование DAO с Microsoft Jet >> Набор Properties

Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Набор Properties


Большинство объектов DAO содержат набор Properties. Каждый объект Property набора Properties соответствует свойству объекта. Вы можете использовать набор Properties объекта, чтобы определить, какие свойства применимы к конкретному объекту, или чтобы получить значения этих свойств. В следующем примере перечисляются все свойства, применимые к объекту Database, который представляет текущую базу данных. Процедура показывает имя каждого свойства в окне отладки.

Sub DisplayProperties()
═════Dim dbs As Database, prp As Property
═════Const conPath As String = _
══════════"C:\Program Files\Microsott Office\Oftice\Samples\Northwind.mdb"

═════? открываем базу данных и получаем ссылку на нее
═════Set dbs = OpenDatabase(conPath)
═════Debug. Print "Current Database Properties"
═════?
перебираем набор Properties
═════For Each prp In dbs. Properties
══════════Debug. Print prp. Name
═════Next prp
═════dbs. Close
End Sub

He все свойства объектов DAO автоматически включаются в их наборы Properties. Поэтому, прежде чем устанавливать значение свойства такого типа, нужно создать объект Property, представляющий свойство, и добавить его в набор Properties. После этого можно устанавливать и считывать данное свойство так же, как и любые другие.

Если Вы пишете код, использующий подобные свойства, предусмотрите обработку ошибок на случай, если такого свойства вдруг не будет в наборе. Приведенная ниже функция ? обобщенная процедура, пригодная для установки любого свойства, не включаемого автоматически в набор Properties объекта. В этой функции реализована обработка ошибок. При первом вызове функции возникает ошибка, так как свойство отсутствует в наборе Properties. Обработчик ошибок создает новый объект Property и добавляет его в набор. При последующих вызовах функции ошибка не возникает, поскольку свойство уже есть в наборе, и ему будет присвоено указанное Вами значение.

Function SetProperty(obj As Object. strName As String, _
═════intType As Integer, varSetting As Variant) As Boolean

═════Dim prp As Property
═════Const conPropNotFound As Integer = 3270

═════On Error GoTo Error_SetProperty
═════?
явно ссылаемся на набор Properties
═════obj.Properties(strName) = varSetting
═════SetProperty = True

Exit_SetProperty:
═════Exit Function

Error_SetProperty:
═════if Err = conPropNotFound Then
══════════?
создаем объект-свойство, указываем его тип и начальное значение
══════════Set prp = obj.CreateProperty(strName. intType, varSetting)
══════════?
добавляем объект Property в набор Properties
══════════obj .Properties.Append prp
══════════obj. Properties. Refresh
══════════SetProperty = True
══════════Resume Exit_SetProperty
═════Else
══════════MsgBox Err & ": " & vbCrLf & Err. Description
══════════SetProperty = False
══════════Resume Exit_SetProperty
═════End If
End Function

Чтобы установить значение свойства ReplicableBool объекта Database, предыдущую функцию можно вызвать так* :

Sub ReplicateDatabase()
═════Dim dbs As Database

═════Const conPath As String = _
══════════"C: \Program Files\Microsott Oftice\Ottice\Samples\Northwind, mdb"

═════Set dbs = OpenDatabase(conPath, True)
═════If SetProperty(dbs, "ReplicableBool", dbBoolean, True) Then
══════════Debug. Print "Database replicated succestully."
═════Else
══════════Debug. Print "Database not replicated."
═════End If
End Sub

Считывая или устанавливая свойство, не включаемое автоматически в набор Properties объекта, Вы должны явно ссылаться на этот набор. Например, всякий раз, когда Вы ссылаетесь на свойство ReplicableBool (после установки его значения), Вы должны указывать набор Properties:

Dim dbs As Database
Const conPath As String = _
═════"C: \Program Files\Microsott Ottice\Ottice\Samples\Northwind. mdb"
Set dbs = OpenDatabase(conPath)
Debug. Print dbs. Properties("ReplicableBool")

Функция SetProperty, показанная ранее, пригодна и для определения нестандартных свойств объектов DAO. Допустим, Вам нужно определить свойство для хранения имени пользователя, который последним модифицировал конкретную таблицу. Устанавливая или считывая нестандартное свойство, Вы должны явно сослаться на набор Properties, как в предыдущих примерах.

Некоторые приложения определяют свои свойства для объектов DAO. Например, Microsoft Access определяет свойства для DAO-объектов TableDef, QueryDef, Field и Document. Если Вы работаете с базой данных, открывавшейся в Microsoft Access, то для объектов DAO могут быть определены некоторые из этих свойств.

Подробнее о наборе Properties см. разделы ?Properties collection? (?Семейство Properties?) и ?CreateProperty method? (?Метод CreateProperty?) справочной системы DAO.



[Назад]    [Содержание ]    [Вперед]

  



Текст пособия подготовлен на основе материалов книги
Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл.
c Оригинальное издание на английском языке,
Microsoft Corporation, 1997
c Русский перевод,
Microsoft Corporation, 1997

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017