Field.AppendChunk-Methode (DAO)
Gilt für: Access 2013, Office 2013
Appends data from a string expression to a Memo or Long Binary Field object in a Recordset.
Syntax
Ausdruck . AppendChunk(Val)
Ausdruck Eine Variable, die ein Field-Objekt darstellt.
Parameter
Name |
Erforderlich/optional |
Datentyp |
Beschreibung |
---|---|---|---|
Val |
Erforderlich |
Variant |
Ein Ausdruck oder eine Variable vom Typ Variant (Untertyp String) mit den Daten, die an das Field-Objekt angefügt werden sollen. |
Hinweise
You can use the AppendChunk and GetChunk methods to access subsets of data in a Memo or Long Binary field.
You can also use these methods to conserve string space when you work with Memo and Long Binary fields. Certain operations (copying, for example) involve temporary strings. If string space is limited, you may need to work with chunks of a field instead of the entire field.
Wenn Sie AppendChunk verwenden, ohne dass ein aktueller Datensatz vorhanden ist, tritt ein Fehler auf.
Hinweis
Durch den ersten AppendChunk-Vorgang (nach einem Edit - oder AddNew -Aufruf) werden die Daten einfach in das Feld geschrieben, und vorhandene Daten werden überschrieben. Nachfolgende AppendChunk-Aufrufe innerhalb derselben Edit- oder AddNew-Sitzung werden anschließend zu den vorhandenen Daten hinzugefügt.
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 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