Access macht Installationsarbeit

Rein in die Tabelle

Fehlen noch zwei Funktionen, mit denen man eine Datei aus dem Dateisystem in der Tabelle und aus der Tabelle wieder im Dateisystem speichern kann.

Das Importieren in die Datenbank übernimmt die Funktion DateiInTabelle (Listing 1).

Const TABELLE As String = "tblDateien"
Public Function DateiInTabelle(strDateibezeichnung As String, strDatei As String)
As Long
Dim cnn As ADODB.Connection
Dim rst As New ADODB.Recordset
Dim lngImportdateiID As Long
Dim Buffer() As Byte
Dim lngDateigroesse As Long
On Error GoTo DateiInTabelle_Err
Set cnn = CurrentProject.Connection
rst.Open "SELECT Datei, Dateibezeichnung FROM " & TABELLE & " WHERE Dateibezeichnung
= '" & strDateibezeichnung & "'", cnn, adOpenDynamic, adLockOptimistic
If rst.EOF Then
rst.AddNew
End If
lngImportdateiID = FreeFile
If Dir(strDatei) = "" Then
MsgBox "Die Datei '" & strDatei & "' existiert nicht."
Exit Function
End If
Open strDatei For Binary Access Read As lngImportdateiID
lngDateigroesse = FileLen(strDatei)
ReDim Buffer(lngDateigroesse)
Get lngImportdateiID, , Buffer
rst!Datei = Null
rst!Dateibezeichnung = strDateibezeichnung
rst!Datei.AppendChunk Buffer
rst.Update
Close lngImportdateiID
DateiInTabelle = True
DateiInTabelle_Exit:
rst.Close
Set rst = Nothing
Set cnn = Nothing
Exit Function
DateiInTabelle_Err:
DateiInTabelle = Err.Number
Debug.Print Err.Description
Resume DateiInTabelle_Exit
End Function

Die dort enthaltene Konstante TABELLE speichert den Namen der Zieltabelle, die in beiden Funktionen benötigt wird:

Const TABELLE As String = "tblDateien"

Die Funktion hat zwei Eingangsparameter:

  • strDateibezeichnung erwartet die Bezeichnung, die im Feld Dateibezeichnung der Tabelle tblDateien für die neu zu importierende Datei angelegt werden soll.

  • strDatei dient zur Übergabe des Dateinamens, inklusive des komplettem Pfads.