Метод 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