Compartir a través de


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