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.5.1 Importieren von Dateien in Anlage-Felder

11.5.2 Exportieren von Dateien aus dem Anlage-Feld

Für den umgekehrten Weg gibt es ebenfalls eine passende und universell einsetzbare Funktion. Der Grund, warum die Datei wesentlich kompakter ist als die zum Importieren von Dateien, ist folgender: Die Routine greift direkt mit einer geeigneten SQL-Abfrage auf die in der Untertabelle des Anlage-Feldes enthaltenen Felder zu. Die Parameter sind weitgehend mit denen der vorherigen Funktion identisch. Auch der Export mit der Methode SaveToFile prüft die Dateiendung, weshalb auch hier ein Workaround eingebaut ist.

Function RestoreBLOB2007(strTable As String, strFieldAttach As String, _
    strIDField As String, varID As Variant, strFileName As String, _
    Optional strAttachment As String = "*") As Boolean

    Dim rstACCDB As DAO.Recordset2
    On Error GoTo ErrHandler

    Set rstACCDB = CurrentDb.OpenRecordset("SELECT [" & strFieldAttach _
        & "].FileData FROM " & strTable & " WHERE [" & strIDField & "]=" _
        & varID & " AND [" & strFieldAttach & "].FileName LIKE '" _
        & strAttachment & "'", dbOpenSnapshot)
    If rstACCDB.EOF Then
        Err.Raise vbObjectError + 3, "RestoreBLOB2007", _
            "Das Anlage-Feld ist leer"
    End If
    If Dir(strFileName) <> "" Then
        Kill strFileName
        DoEvents
    End If
    'Fehlerbehandlung ausschalten, da nachfolgende Zeile
    'gegebenenfalls Fehler bei blockierten Dateiendungen erzeugt
    On Error Resume Next    
    rstACCDB(0).SaveToFile strFileName
    If Err.Number = (-2146697202) Then
        'Spezialbehandlung: Datei wird mit Endung .dat versehen,
        'was erlaubte Endung ist. Anschließend wird wiederhergestellte _
        'Datei wieder korrekt umbenannt
        rstACCDB(0).SaveToFile strFileName & ".dat"
        DoEvents
        Name strFileName & ".dat" As strFileName
    End If
    
    RestoreBLOB2007 = True

Finally:
    On Error Resume Next
    Set rstACCDB = Nothing
    rstDAO.Close
    Set rstDAO = Nothing
    Exit Function
ErrHandler:
    MsgBox Err.Number & "/" & Err.Description, vbCritical
    Resume Finally

End Function

Listing 11.2: Speichern von Anlagen im Dateisystem

Nächster Abschnitt:

11.6 Bilder und Dateien im OLE-Feld einbetten oder verknüpfen

© 2006-2008 André Minhorst Alle Rechte vorbehalten.