Mit der nachfolgenden Funktion ist es möglich die per “Datei-Auswahl” selektierte Datei als Binalry Large Object in ein OLE-Feld der Datenbank zu schreiben. Wenn die Zieltabelle auf einem MS SQL Server liegt, dann sollte das entsprechende Feld das Format “Image” haben.

Private Sub BT_Neu_Click()

On Error GoTo Errr

‘Definition der benötigten Variablen
Dim Pfad As String
Dim Doc_Name As String
Dim F As Integer
Dim arrBin() As Byte
Dim rs As DAO.Recordset

‘Definition eines Recordsets, um später den neuen Datensatz in die Tabelle “BLOB” zu schreiben
Set rs = CurrentDb.OpenRecordset(“SELECT * from Blob;”, dbOpenDynaset, dbSeeChanges)

Pfad = DateiAuswaehlen() ‘Aufrufen der Funktion “DateiAuswaehlen” um den gewünscten Dateipfad der Datei zu erhalten, die in die Datenbank geschrieben werden soll.
Doc_Name = ExtractFileName(Pfad) ‘Aufrufen der Funktion “ExtractFileName” um den den Dateinamen aus dem vorher erhaltenen Dateipfad zu extrahieren.

‘Füllen des Recordsets
rs.AddNew ‘Definiert, dass ein neuer Datensatz in die Tabelle geschrieben werden soll – Alternativ: rs.Edit zum Bearbeiten eines bestehenden Datensatzes
rs!Doc_Name = Doc_Name
rs!Doc_Datum = Now()
F = FreeFile
Open Pfad For Binary As #F ‘Speichert die Datei im Objekt #F
ReDim arrBin(LOF(F) – 1) ‘Redimensioniert das Array “arrBin” anhand der Größe des Objektes #F (Filegröße)
Get #F, , arrBin()
rs!Doc_Größe = FileSize(Pfad) / 1024 ‘Speichert die Dateigröße in Kilobytes – die Funktion “Filesize” liefert jedoch nur Bytes, daher die Division durch 2014
Close #F ‘Schliesst das Obkjekt #F
rs!Doc_Blob.AppendChunk arrBin() ‘Schreibt das Objekt in den Recordset
rs.Update ‘Schreibt den gesamten Recordset in die Tabelle

Me.Requery ‘Aktualisiert das Formular, damit der Datensatz sofort sichtbar wird

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>