Compartir a través de


Método Database.CreateProperty (DAO)

Se aplica a: Access 2013, Office 2013

Crea un nuevo objeto Property definido por el usuario (sólo áreas de trabajo de Microsoft Access). .

Sintaxis

expresión . CreateProperty(Name, Type, Value, DDL)

expression Variable que representa un objeto Database.

Parameters

Nombre

Obligatorio/opcional

Tipo de datos

Descripción

Name

Opcional

Variant

String que identifica inequívocamente el nuevo objeto Property. Vea el tema relativo a la propiedad Name para obtener información detallada sobre los nombres de Property válidos.

Tipo

Opcional

Variant

Constante que define el tipo de datos del nuevo objeto Property. Consulte la propiedad Type para obtener los tipos de datos válidos.

Valor

Opcional

Variant

Variant que contiene el valor inicial de la propiedad. Consulte la propiedad Value para obtener más información.

DDL

Opcional

Variant

Variant (subtipo Boolean) que indica si el objeto Property es un objeto DLL. El valor predeterminado es False. Si DDL es True, los usuarios no pueden cambiar ni eliminar este objeto Property a menos que tengan el permiso dbSecWriteDef.

Valor devuelto

Propiedad

Comentarios

Sólo puede crear un objeto Property definido por el usuario en la colección Properties de un objeto que sea persistente.

Si omite uno o varios de los argumentos opcionales cuando utiliza CreateProperty, puede usar la instrucción de asignación pertinente para establecer o restablecer la propiedad correspondiente antes de agregar el nuevo objeto a una colección. Después de agregar el objeto, podrá modificar algunos de sus valores, pero no todos. Vea los temas relativos a las propiedades Name, Type y Value para obtener más información.

Si name hace referencia a un objeto que ya es miembro de la colección, se produce un error en tiempo de ejecución cuando se usa el método Append .

Para quitar un objeto Property definido por el usuario de la colección, utilice el método Delete en la colección Properties. No se pueden eliminar propiedades integradas.

Nota:

Si omite el argumento DDL, el valor predeterminado es False (no DDL). Como no se expone ninguna propiedad DLL correspondiente, debe eliminar y volver a crear un objeto Property que desee cambiar de DDL a no DDL.

Ejemplo

En este ejemplo se intenta establecer el valor de una propiedad definida por el usuario. Si la propiedad no existe, se utiliza el método CreateProperty para crear y definir el valor de la nueva propiedad. Se requiere el procedimiento SetProperty para que pueda ejecutarse este procedimiento.

    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