Método Field2.AppendChunk (DAO)
Se aplica a: Access 2013, Office 2013
Agrega datos de una expresión de cadena a un objeto Field2 Memo o Binario largo en un Recordset.
Sintaxis
expresión . AppendChunk(Val)
expression Variable que representa un objeto Field2.
Parameters
Nombre |
Obligatorio/opcional |
Tipo de datos |
Descripción |
---|---|---|---|
Val |
Obligatorio |
Variant |
Expresión o variable Variant (subtipo cadena) que contiene los datos que desea agregar al objeto Field2. |
Comentarios
Puede utilizar los métodos AppendChunk y GetChunk para tener acceso a subconjuntos de datos en un campo Memo o Binario largo.
Puede utilizar también estos métodos para conservar espacio de cadena cuando trabaje con campos Memo o Binario largo. En algunas operaciones (como copiar) se utilizan cadenas temporales. Si el espacio de cadena es limitado, quizás necesite trabajar con fragmentos de un campo en lugar de con todo el campo.
Si no hay ningún registro actual cuando utiliza AppendChunk, se produce un error.
Nota:
La operación AppendChunk inicial (después de una llamada a Edit o AddNew ) sólo colocará los datos en el campo sobrescribiendo los existentes. Las siguientes llamadas a AppendChunk en la misma sesión Edit o AddNew agregarán entonces los datos a los datos existentes.
Ejemplo
En este ejemplo se utilizan los métodos AppendChunk y GetChunk para rellenar un campo de objeto OLE con datos de otro registro, 32 K cada vez. En una aplicación real, se podría utilizar un procedimiento como éste para copiar un registro de empleado (incluida la foto del mismo) de una tabla a otra. En este ejemplo, el registro simplemente se vuelve a copiar en la misma tabla. Tenga en cuenta que todas las operaciones con fragmentos de campo se producen dentro de una sola secuencia AddNew-Update.
Sub AppendChunkX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim rstEmployees2 As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' Open two recordsets from the Employees table.
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenDynaset)
Set rstEmployees2 = rstEmployees.Clone
' Add a new record to the first Recordset and copy the
' data from a record in the second Recordset.
With rstEmployees
.AddNew
!FirstName = rstEmployees2!FirstName
!LastName = rstEmployees2!LastName
CopyLargeField rstEmployees2!Photo, !Photo
.Update
' Delete new record because this is a demonstration.
.Bookmark = .LastModified
.Delete
.Close
End With
rstEmployees2.Close
dbsNorthwind.Close
End Sub
Function CopyLargeField(fldSource As Field2, _
fldDestination As Field2)
' Set size of chunk in bytes.
Const conChunkSize = 32768
Dim lngOffset As Long
Dim lngTotalSize As Long
Dim strChunk As String
' Copy the photo from one Recordset to the other in 32K
' chunks until the entire field is copied.
lngTotalSize = fldSource.FieldSize
Do While lngOffset < lngTotalSize
strChunk = fldSource.GetChunk(lngOffset, conChunkSize)
fldDestination.AppendChunk strChunk
lngOffset = lngOffset + conChunkSize
Loop
End Function