MyTetra Share
Делитесь знаниями!
Шаг 66 - Метод CreateProperty
16.03.2019
23:43
Текстовые метки: VBA access, CreateProperty
Раздел: !Закладки - VBA - Access - DAO

Шаг 66 - Метод CreateProperty

Описание
Создает новый определяемый пользователем объект Property (только в рабочей области ядра Microsoft Jet).

Set свойство = объект.CreateProperty (имя, тип, значение, кодDDL)



Параметры
свойство
Объектная переменная, представляющая создаваемый объект Property.
объект
Объектная переменная, представляющая объект Database, Field, Index, QueryDef, Document или TableDef, который используется при создании нового объекта Property.
имя
Необязательный. Выражение или переменная типа Variant (подтип String), содержащая уникальное имя нового объекта Property. Сведения о допустимых именах свойств приведены в разделе о свойстве Name.
тип
Необязательный. Константа, определяющая тип данных нового объекта Property. Сведения о допустимых константах определения типа данных приведены в разделе о свойстве Type.
значение
Необязательный. Выражение или переменная типа Variant, содержащая начальное значение свойства. Дополнительные сведения приведены в разделе о свойстве Value.
кодDDL
Необязательный. Выражение или переменная типа Variant (подтип Boolean), указывающая, является или нет объект Property объектом языка описания данных (DDL). По умолчанию задается значение False. Если кодDDL имеет значение True, данный объект Property может быть изменен или удален только пользователем, имеющим разрешение dbSecWriteDef.

Замечания
Определяемый пользователем объект Property может быть создан только в постоянном семействе Properties (то есть уже сохраненном на диске).
Если один или несколько необязательных элементов синтаксиса опущены при вызове метода CreateProperty, допускается использование соответствующих инструкций присваивания для задания или изменения значения соответствующего свойства перед добавлением нового объекта в семейство. После добавления нового объекта в семейство можно будет изменить значения некоторых (но не всех) его свойств. Дополнительные сведения приведены в разделах, посвященных свойствам Name, Type и Value.
Если аргумент имя указывает на объект, который уже добавлен в семейство, то при вызове метода Append возникает ошибка выполнения.
Для удаления определяемого пользователем объекта Property следует применить метод Delete к семейству Properties. Встроенные свойства удалить нельзя.
Если опустить аргумент кодDDL, он по умолчанию получает значение False (объект не является объектом DDL). Поскольку свойства, определяющего объект языка описания данных, не существует, то для превращения объекта DDL в объект, не являющийся объектом DDL, необходимо для преобразования объекта удалить и снова создать объект Property.

Пример
В следующей программе делается попытка задать значение определяемого пользователем свойства. Если свойство не существует, вызывается метод CreateProperty для создания нового свойства и задания его значения. Для выполнения этой процедуры требуется процедура SetProperty.

Sub CreatePropertyX()


Dim dbsNorthwind As Database

Dim prpLoop As Property


Set dbsNorthwind = OpenDatabase("Борей.mdb")

' Задает для свойства "Архивный " значение True.

SetProperty dbsNorthwind, "Архивный", True

With dbsNorthwind

Debug.Print "Свойства " & .Name

' Отображает семейство Properties базы данных "Борей".

For Each prpLoop In .Properties

If prpLoop <> "" Then Debug.Print " " & prpLoop.Name & " = " & prpLoop

Next prpLoop


' Удаляет новое свойство, созданное только

' для демонстрации.

.Properties.Delete "Архивный"

.Close

End With

End Sub


Sub SetProperty(dbsTemp As Database, strName As String, booTemp As Boolean)


Dim prpNew As Property

Dim errLoop As Error


' Делает попытку задать значение указанного свойства.

On Error GoTo Err_Property

dbsTemp.Properties("strName") = booTemp

On Error GoTo 0

Exit Sub


Err_Property:


' Ошибка 3270 означает, что свойство не найдено.

If DBEngine.Errors(0).Number = 3270 Then

' Создает свойство, задает его значение и добавляет

' свойство в семейство Properties.

Set prpNew = dbsTemp.CreateProperty(strName, dbBoolean, booTemp)

dbsTemp.Properties.Append prpNew

Resume Next

Else

' При возникновении другой ошибки выводит сообщение.

For Each errLoop In DBEngine.Errors

MsgBox "Код ошибки: " & errLoop.Number & vbCr & errLoop.Description

Next errLoop

End

End If

End Sub




Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования