Mit der folgenden Funktion ermögliche ich es in der Datenbank eine als BLOB gespeicherte Datei auszulesen und anzeigen zu lassen. Damit dies möglich ist, wird die Datei im Temp-Ordner Eurer Windowsinstallation abgelegt und von dort aus gestartet. Ggf. müsste man zusätzlich noch eine Routine schreiben, um diese Datei zu einem späteren Zeitpunkt wieder aus dem temp-ordner zu löschen, wenn man sie nicht mehr benötigt. Dies wurde hier aber nicht mehr berücksichtigt.

Hier der Code:

Private Sub ID_Click()
On Error GoTo Errr

‘Definition der Variablen
Dim F As Integer
Dim lSize As Long
Dim arrBin() As Byte
Dim rs As DAO.Recordset
Dim path As String
 

‘Defition des Zielpfades (Hier:  Temp-Ordner – Alternativ könnte auch jeder andere Pfad hier definiert werden)

path = TempDirectory & Me.Doc_Name

‘Defition des zu lesenden Datensatzes

Set rs = CurrentDb.OpenRecordset(“SELECT * from Blob where ID = ” & Me.ID & “;”, dbOpenDynaset, dbSeeChanges)

‘Abfrage der erwarteten Dateigröße – diese wurde vorher zusammen mit der Datei in einem Feld der Datenbank gespeichert.

lSize = rs!Doc_Blob.FieldSize

‘Redimensionieren des Arrays “arrbin” anhand der abgefragten Dateigröße

ReDim arrBin(lSize – 1)

‘Schreiben der Datei in das Array “arrBin”

arrBin = rs!Doc_Blob.GetChunk(0, lSize)

‘Schreibt die Datei über ein Objekt #F in den definierten Ordner (“Path”)

F = FreeFile
Open path For Binary As #F
Put #F, , arrBin
Close #F

‘Schliessen des Recordsets

rs.Close

‘Öffnen der Datei

Application.FollowHyperlink path

‘Da mir es immer wieder passiert ist, dass die Datei sich im Hintergrund geöffnet hat, auch weil ich zu vielle Applikationen auf hatte, habe ich diesen Hinweis eingebaut, damit man nicht zu lange wartet, bis sich was tut.

MsgBox (“Die Datei ‘” & Me.Doc_Name & “‘ wurde geöffnet. Möglicherweise wurde Sie jedoch im Hintergrund gestartet.”)

Exit_Click:
   Exit Sub
Errr:
   MsgBox Err.Number & Err.Description
Resume Exit_Click
End Sub

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>