Freigeben über


Field2.GetChunk-Methode (DAO)

Gilt für: Access 2013, Office 2013

Gibt den gesamten Oder einen Teil des Inhalts eines Memo - oder Long BinaryField2-Objekts in der Fields-Auflistung eines Recordset-Objekts zurück.

Syntax

Ausdruck . GetChunk(Offset, Bytes)

Ausdruck Eine Variable, die ein Field2-Objekt darstellt.

Parameter

Name

Erforderlich/optional

Datentyp

Beschreibung

Offset

Erforderlich

Long

Die Anzahl von zu überspringenden Bytes, bevor das Kopieren gestartet wird.

Bytes

Erforderlich

Long

Die Anzahl von Bytes, die zurückgegeben werden sollen.

Rückgabewert

Variant

Hinweise

The bytes returned by GetChunk are assigned to variable. Use GetChunk to return a portion of the total data value at a time. You can use the AppendChunk method to reassemble the pieces.

Wenn offset 0 ist, beginnt GetChunk mit dem Kopieren ab dem ersten Byte des Felds.

Wenn Numbytes größer als die Anzahl der Bytes im Feld ist, gibt GetChunk die tatsächliche Anzahl der verbleibenden Bytes im Feld zurück.

Hinweis

[!HINWEIS] Verwenden Sie ein Memo-Feld für Text, und schreiben Sie binäre Daten nur in Felder des Typs Long Binary. Andernfalls erzielen Sie unerwünschte Ergebnisse.

Beispiel

In diesem Beispiel werden die Methoden AppendChunk und GetChunk verwendet, um ein OLE-Objektfeld mit Daten aus einem anderen Datensatz zu füllen (immer jeweils 32 KB). In einer echten Anwendung kann es sinnvoll sein, mit einer Prozedur wie dieser einen Mitarbeiterdatensatz (inklusive Foto des Mitarbeiters) von einer Tabelle in eine andere zu kopieren. In diesem Beispiel wird der Datensatz einfach wieder in dieselbe Tabelle kopiert. Beachten Sie, dass die gesamte Bearbeitung des Abschnitts innerhalb einer einzelnen AddNew-Aktualisierungssequenz erfolgt.

    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