Поделиться через


Метод Field2.AppendChunk (DAO)

Область применения: Access 2013, Office 2013

Добавляет данные из строкового выражения в объект Memo или Long Binary Field2 в наборе записей.

Синтаксис

expression . AppendChunk(Val)

expression — переменная, представляющая объект Field2.

Параметры

Имя

Обязательный/необязательный

Тип данных

Описание

Val

Обязательный

Variant

Выражение Variant (подтип строки) или переменная, содержащая данные, которые нужно добавить к объекту Field2 .

Замечания

Методы AppendChunk и GetChunk можно использовать для доступа к подмножествам данных в поле Memo или Long Binary.

Эти методы также можно использовать для экономии пространства строк при работе с полями Memo и Long Binary. Некоторые операции (например, копирование) включают временные строки. Если строковое пространство ограничено, может потребоваться работать с блоками поля, а не со всем полем.

Если при использовании AppendChunk нет текущей записи, возникает ошибка.

Примечание.

Начальная операция AppendChunk (после вызова Edit или AddNew ) просто поместит данные в поле, перезаписав все существующие данные. Последующие вызовы AppendChunk в том же сеансе Edit или AddNew будут добавляться к существующим данным.

Пример

В этом примере методы AppendChunk и GetChunk используются для заполнения поля объекта OLE данными из другой записи( 32 КБ за раз). В реальном приложении можно использовать подобную процедуру для копирования записи сотрудника (включая фотографию сотрудника) из одного стола в другой. В этом примере запись просто копируется обратно в ту же таблицу. Обратите внимание, что все операции с блоками происходят в одной последовательности 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