Partager via


Field.AppendChunk, méthode (DAO)

S’applique à : Access 2013, Office 2013

Ajoute des données issues d'une expression de chaîne à un objet Field de type mémo ou binaire long dans un objet Recordset.

Syntaxe

expression . AppendChunk(Val)

expression Variable qui représente un objet Field.

Paramètres

Nom

Obligatoire/facultatif

Type de données

Description

Val

Obligatoire

Variant

Variable ou expression de type Variant (sous-type String) contenant les données à ajouter à l’objet Field.

Remarques

Vous pouvez utiliser les méthodes AppendChunk et GetChunk pour accéder à des sous-ensembles de données dans un champ de type mémo ou binaire long.

Vous pouvez également les utiliser pour conserver de l'espace de chaîne lorsque vous utilisez des champs de type mémo et binaire long. Certaines opérations (la copie par exemple) font intervenir des chaînes temporaires. Si l'espace de chaîne est limité, il se peut que vous deviez utiliser des segments du champ au lieu du champ entier.

S'il n'existe aucun enregistrement actif lors de l'utilisation de la méthode AppendChunk, une erreur se produit.

Remarque

L'opération AppendChunk initiale (après un appel à Edit ou à AddNew ) place simplement les données dans le champ en remplaçant les données existantes. Les appels à AppendChunk suivants au cours de la même session Edit ou AddNew ajoutent des données aux données existantes.

Exemple

Cet exemple utilise les méthodes AppendChunk et GetChunk pour remplir un champ d'objet OLE avec des données issues d'un autre enregistrement, 32 Ko à la fois. Dans une vraie application, vous pouvez utiliser une procédure similaire pour copier la fiche d'un salarié (photo comprise) d'une table à une autre. Dans cet exemple, la fiche est simplement copiée dans la même table. Notez que toute la manipulation des segments se passe dans une seule séquence 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 Field, _ 
       fldDestination As Field) 
     
       ' 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