Método Fields.Append (DAO)
Se aplica a: Access 2013, Office 2013
Agrega un nuevo Field a la colección Fields.
Sintaxis
expresión . Append(Object)
expression Variable que representa un objeto Fields.
Parameters
Nombre |
Obligatorio/opcional |
Tipo de datos |
Descripción |
---|---|---|---|
Objeto |
Necesario |
Objeto |
Variable de objeto que representa el campo que se va a anexar a la colección. |
Comentarios
Puede utilizar el método Append para agregar una nueva tabla a una base de datos, un campo a una tabla y un campo a un índice.
El objeto anexado se convierte en un objeto persistente, almacenado en un disco, hasta que lo elimine mediante el método Delete.
La agregación de un nuevo objeto se produce de inmediato pero debe utilizar el método Refresh en cualquier otra colección que pueda verse afectada por los cambios en la estructura de base de datos.
Si el objeto que está anexando está incompleto (como cuando no ha anexado ningún objeto Field a una colección Fields de un objeto Index antes de anexarlo a una colección Indexes) o si las propiedades establecidas en uno o varios objetos subordinados son incorrectas, el uso del método Append provoca un error. Por ejemplo, si no ha especificado un campo e intenta anexar el objeto Field a la colección Fields en un objeto TableDef, el uso del método Append desencadena un error en tiempo de ejecución.
Ejemplo
En este ejemplo se utiliza el método Append o Delete para modificar la colección Fields de un objeto TableDef. Se requiere el procedimiento AppendDeleteField para que pueda ejecutarse este procedimiento.
Sub AppendX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim fldLoop As Field
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set tdfEmployees = dbsNorthwind.TableDefs!Employees
' Add three new fields.
AppendDeleteField tdfEmployees, "APPEND", _
"E-mail", dbText, 50
AppendDeleteField tdfEmployees, "APPEND", _
"Http", dbText, 80
AppendDeleteField tdfEmployees, "APPEND", _
"Quota", dbInteger, 5
Debug.Print "Fields after Append"
Debug.Print , "Type", "Size", "Name"
' Enumerate the Fields collection to show the new fields.
For Each fldLoop In tdfEmployees.Fields
Debug.Print , fldLoop.Type, fldLoop.Size, fldLoop.Name
Next fldLoop
' Delete the newly added fields.
AppendDeleteField tdfEmployees, "DELETE", "E-mail"
AppendDeleteField tdfEmployees, "DELETE", "Http"
AppendDeleteField tdfEmployees, "DELETE", "Quota"
Debug.Print "Fields after Delete"
Debug.Print , "Type", "Size", "Name"
' Enumerate the Fields collection to show that the new
' fields have been deleted.
For Each fldLoop In tdfEmployees.Fields
Debug.Print , fldLoop.Type, fldLoop.Size, fldLoop.Name
Next fldLoop
dbsNorthwind.Close
End Sub
Sub AppendDeleteField(tdfTemp As TableDef, _
strCommand As String, strName As String, _
Optional varType, Optional varSize)
With tdfTemp
' Check first to see if the TableDef object is
' updatable. If it isn't, control is passed back to
' the calling procedure.
If .Updatable = False Then
MsgBox "TableDef not Updatable! " & _
"Unable to complete task."
Exit Sub
End If
' Depending on the passed data, append or delete a
' field to the Fields collection of the specified
' TableDef object.
If strCommand = "APPEND" Then
.Fields.Append .CreateField(strName, _
varType, varSize)
Else
If strCommand = "DELETE" Then .Fields.Delete _
strName
End If
End With
End Sub