Поделиться через


Метод Database.CreateProperty (DAO)

Область применения: Access 2013, Office 2013

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

Синтаксис

expression . CreateProperty(Name, Type, Value, DDL)

выражение: переменная, представляющая объект Database.

Параметры

Имя

Обязательный/необязательный

Тип данных

Описание

Name

Необязательно заполнять.

Variant

Строка, которая однозначно присваивает имя новому объекту Property. Сведения о допустимых именах свойств см. в свойстве Name.

Type

Необязательный

Variant

Константы, определяющие тип данных нового объекта Property . Допустимые типы данных см. в свойстве Type.

Value (Значение)

Необязательный

Variant

Объект Variant, содержащий начальное значение свойства. Дополнительные сведения см. в свойстве Value .

DDL

Необязательный

Variant

Тип Variant (логический подтип), указывающий, является ли свойство объектом DDL. Значение по умолчанию - false. Если DDL имеет значение True, пользователи не могут изменять или удалять этот объект Property , если у них нет разрешения dbSecWriteDef.

Возвращаемое значение

Property

Замечания

Определяемый пользователем объект Property можно создать только в коллекции Properties объекта, который является постоянным.

Если при использовании CreateProperty вы пропустите одну или несколько необязательных частей, можно использовать соответствующую инструкцию присваивания, чтобы задать или сбросить соответствующее свойство перед добавлением нового объекта в коллекцию. После добавления объекта можно изменить некоторые, но не все его параметры свойств. Дополнительные сведения см. в разделах Свойства Имя, Тип и Значение .

Если имя ссылается на объект, который уже является членом коллекции, при использовании метода Append возникает ошибка во время выполнения.

Чтобы удалить определяемый пользователем объект Property из коллекции, используйте метод Delete в коллекции Properties . Вы не можете удалить встроенные свойства.

Примечание.

Если опустить аргумент DDL, по умолчанию используется значение False (не DDL). Так как соответствующее свойство DDL не предоставляется, необходимо удалить и повторно создать объект Property , который требуется изменить с DDL на не DDL.

Пример

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

    Sub CreatePropertyX() 
     
       Dim dbsNorthwind As Database 
       Dim prpLoop As Property 
     
       Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     
       ' Set the Archive property to True. 
       SetProperty dbsNorthwind, "Archive", True 
        
       With dbsNorthwind 
          Debug.Print "Properties of " & .Name 
           
          ' Enumerate Properties collection of the Northwind  
          ' database. 
          For Each prpLoop In .Properties 
             If prpLoop <> "" Then Debug.Print "  " & _ 
                prpLoop.Name & " = " & prpLoop 
          Next prpLoop 
     
          ' Delete the new property since this is a  
          ' demonstration. 
          .Properties.Delete "Archive" 
     
          .Close 
       End With 
     
    End Sub 
     
    Sub SetProperty(dbsTemp As Database, strName As String, _ 
       booTemp As Boolean) 
     
       Dim prpNew As Property 
       Dim errLoop As Error 
     
       ' Attempt to set the specified property. 
       On Error GoTo Err_Property 
       dbsTemp.Properties("strName") = booTemp 
       On Error GoTo 0 
     
       Exit Sub 
     
    Err_Property: 
     
       ' Error 3270 means that the property was not found. 
       If DBEngine.Errors(0).Number = 3270 Then 
          ' Create property, set its value, and append it to the  
          ' Properties collection. 
          Set prpNew = dbsTemp.CreateProperty(strName, _ 
             dbBoolean, booTemp) 
          dbsTemp.Properties.Append prpNew 
          Resume Next 
       Else 
          ' If different error has occurred, display message. 
          For Each errLoop In DBEngine.Errors 
             MsgBox "Error number: " & errLoop.Number & vbCr & _ 
                errLoop.Description 
          Next errLoop 
          End 
       End If 
     
    End Sub