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
|