Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

11.7 Bilder und Dateien als Binärstrom im OLE-Feld speichern

11.8 Bilder und Dateien im binären Format aus einem OLE-Feld wiederherstellen

Die Funktion SaveOLEFieldToFile stellt die in der Datenbank gespeicherten Dateien wieder her. Sie ist sehr ähnlich wie die oben beschriebene Funktion aufgebaut und tauscht im Wesentlichen Quelle und Ziel der Datei gegeneinander aus. Für weitere Informationen sei daher auf die Kommentare im Quelltext des folgenden Listings verwiesen.

Public Function SaveOLEFieldToFile(strTable As String, _
    strIDField As String, lngID As Long, strOLEField As String, _
    strFilename As String) As Boolean

    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim lngFileID As Long
    Dim Buffer() As Byte
    Dim lngFileLen As Long
    On Error GoTo SaveOLEFieldToFile_Err
    Set db = CurrentDb

    'Datensatz mit der angegebenen ID öffnen
    Set rst = db.OpenRecordset("SELECT " & strOLEField & " FROM " _
        & strTable & " WHERE " & strIDField & " = " & lngID, dbOpenDynaset)
    On Error GoTo SaveOLEFieldToFile_Err
    'Dateinummer für den Zugriff auf die zu erzeugende Datei ermitteln
    lngFileID = FreeFile
    'Dateigröße ermitteln
    lngFileLen = Nz(LenB(rst(strOLEField)), 0)
    'Wenn die Dateigröße größer 0 ist:
    If lngFileLen > 0 Then
        'Größe der Variable "Buffer" anpassen
        ReDim Buffer(lngFileLen)
        'Datei zum Schreiben öffnen
        Open strFilename For Binary Access Write As lngFileID
        'Feldinhalt in die Variable "Buffer" schreiben
        Buffer = rst(strOLEField). GetChunk(0, lngFileLen)
        'Inhalt der Variablen "Buffer" in die Datei schreiben
         Put lngFileID, , Buffer
    End If
    SaveOLEFieldToFile = True
SaveOLEFieldToFile_Exit:
    On Error Resume Next
    Close lngFileID
    rst.Close
    Set rst = Nothing
    Set db = Nothing
    Exit Function
SaveOLEFieldToFile_Err:
    SaveOLEFieldToFile = False
    Resume SaveOLEFieldToFile_Exit
End Function

Listing 11.4: Die Funktion SaveOLEFieldToFile speichert den Inhalt des angegebenen OLE-Felds in einer Datei

Beispiele für das Speichern einer als OLE-Objekt vorliegenden Datei

Der nachfolgende Aufruf setzt voraus, dass die Tabelle einen Datensatz enthält, dessen OLE-Feld eine Datei im binären Format beinhaltet. Er speichert den Inhalt des Feldes OLEFeld des Datensatzes mit dem Primärschlüsselwert 1 der Tabelle tblOLE in der Datei ExportOLE.tif im aktuellen Datenbankverzeichnis.

SaveOLEFieldToFile "tblOlE", "OLEFeldID", 1, "OLEFeld", currentproject.Path & "\ExportOLE.tif"

Beachten Sie, dass die Prozedur vorhandene Dateien ohne Rückfrage überschreibt.

Nächster Abschnitt:

11.9 Bilder von der Festplatte in Formularen und Berichten anzeigen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.