Описание
Создает новый определяемый пользователем объект 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