{"id":55000269,"date":"2005-04-01T00:00:00","date_gmt":"2020-05-06T15:17:57","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=269"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Dateien_in_Tabellen_speichern","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/","title":{"rendered":"Dateien in Tabellen speichern"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/6771f5c3c6584073a6dc5a6b9ae0bec9\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>&#8222;Dateien in einer Datenbank speichern &#8211; wer macht den so was Schon mit ein paar kleinen Bildchen bl&auml;ht man sich doch die Datenbank schon ma&szlig;los auf!&#8220; &#8211; so &auml;hnlich ist die Meinung der meisten Access-Anwender zum Thema dieses Beitrags. Dass es auch ohne Aufbl&auml;hen geht und dass auch das Speichern anderer Dateien als Bilddateien in der Datenbank sinnvoll sein kann, erfahren Sie nachfolgend &#8211; und nat&uuml;rlich lernen Sie auch Funktionen kennen, die Ihnen dabei eine Menge Arbeit abnehmen.<\/b><\/p>\n<p>Wenn man nicht gerade zu den Leuten geh&ouml;rt, die gerade einen aktuellen Anwendungsfall zum Speichern von Dateien in einer Access-Datenbank haben, fragen Sie sich vielleicht, welche Gr&uuml;nde es &uuml;berhaupt f&uuml;r das Speichern von Dateien in einer Tabelle gibt.<\/p>\n<p>Daf&uuml;r gibt es gen&uuml;gend Anwendungsbeispiele; die bekanntesten davon besch&auml;ftigen sich vermutlich mit der Verwaltung von Bildern. In den g&auml;ngigen Foren fragen Besucher st&auml;ndig nach M&ouml;glichkeiten, um Bilder in Access zu speichern &#8211; und das m&ouml;glichst ohne dass die Datenbank schneller als gew&uuml;nscht eine Gr&ouml;&szlig;e von zwei Gigabyte erreicht.<\/p>\n<p>Aber es gibt noch andere gute Gr&uuml;nde f&uuml;r das Speichern von Dateien in einer Datenbank. Wenn Sie beispielsweise eine Datenbank weitergeben, ohne direkt eine aufw&auml;ndige Installationsroutine mitzuliefern, k&ouml;nnen Sie eventuell zus&auml;tzlich ben&ouml;tigte Anwendungen beim Start der Datenbankanwendung ins Datenbankverzeichnis kopieren und dort verwenden.<\/p>\n<p>Und wenn der Autor hier einmal aus dem N&auml;hk&auml;stchen plaudern darf: Er verwendet die weiter unten vorstellten Funktionen, um alle im Online-Archiv enthaltenen .pdf- und Beispieldateien in einer Datenbank zu verwalten und diese bei Bedarf inklusive entsprechender Verzeichnisstrukturen (Jahrgang\/Ausgabe\/Beitrag &#8230;) auf der Festplatte zu speichern und entsprechend weiterzubearbeiten. <\/p>\n<p>Ebenso leicht ist etwa die Verwendung eines kommandozeilengesteuerten Zip-Tools, um beliebige Dateien ins Filesystem zu kopieren, zu komprimieren und die Originaldateien anschlie&szlig;end wieder zu l&ouml;schen.<\/p>\n<p>Um die Vorgehensweise in den folgenden Kapiteln nachvollziehen zu k&ouml;nnen, ben&ouml;tigen Sie eine Access-Datenbank mit einer Tabelle zum Speichern von Daten. Den Entwurf dieser Tabelle k&ouml;nnen Sie Bild 1 entnehmen.<\/p>\n<p><IMG height=\"142\" src=\"..\/fileadmin\/_temp_\/{49208127-FA0A-4969-A9D0-A0B60F0D177D}\/pic001.png\" width=\"282\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Entwurf der Tabelle zum Speichern von Dateien<\/span><\/b><\/p>\n<pre>Public Function DateiInOLEFeld(strTabelle As String, strPrimaerschluessel As String, _    strZielfeld As String, lngID As Long, Optional strFeldSpeicherort As String, _    Optional strSpeicherort As String, Optional bolImDatenbankpfad As Boolean) As Long\r\n    Dim cnn As ADODB.Connection\r\n    Dim rst As New ADODB.Recordset\r\n    Dim strSpeicherortTemp As String, strSpeicherortName As String\r\n    Dim lngExportdateiID As Long\r\n    Dim Buffer() As Byte\r\n    Dim lngDateigroesse As Long\r\n    On Error GoTo DateiInOLEFeld_Err\r\n    Set cnn = CurrentProject.Connection\r\n    If Not strFeldSpeicherort = \"\" Then\r\n        strSpeicherortTemp = \", \" & strFeldSpeicherort\r\n    Else\r\n        strSpeicherortTemp = \"\"\r\n    End If\r\n    rst.Open \"SELECT \" & strZielfeld & strSpeicherortTemp & \" FROM \" & strTabelle _        & \" WHERE \" & strPrimaerschluessel & \" = \" & lngID, cnn, adOpenDynamic, _        adLockOptimistic\r\n    lngExportdateiID = FreeFile\r\n    If Not strFeldSpeicherort = \"\" Then\r\n        strSpeicherortName = rst(strFeldSpeicherort)\r\n    Else\r\n        strSpeicherortName = strSpeicherort\r\n    End If\r\n    If bolImDatenbankpfad = True Then\r\n        strSpeicherortName = Datenbankpfad & strSpeicherortName\r\n    End If\r\n    If Dir(strSpeicherortName) = \"\" Then\r\n        MsgBox \"Die Datei ''\" & strSpeicherortName & \"'' existiert nicht.\"\r\n        Exit Function\r\n    End If\r\n    Open strSpeicherortName For Binary Access Read Lock Read Write As lngExportdateiID\r\n    lngDateigroesse = FileLen(strSpeicherortName)\r\n    ReDim Buffer(lngDateigroesse)\r\n    rst(strZielfeld) = Null\r\n    Get lngExportdateiID, , Buffer\r\n    rst(strZielfeld).AppendChunk Buffer\r\n    rst.Update\r\n    Close lngExportdateiID\r\n    DateiInOLEFeld = True\r\nDateiInOLEFeld_Exit:\r\n    rst.Close : Set rst = Nothing : Set cnn = Nothing\r\n    Exit Function\r\nDateiInOLEFeld_Err:\r\n    DateiInOLEFeld = Err.Number\r\n    Resume DateiInOLEFeld_Exit\r\nEnd Function<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Die Prozedur zum Speichern einer Datei in einem Feld einer Tabelle finden Sie in Quellcode 1. Der Code sieht relativ umfangreich aus, aber die Prozedur gleicht dies durch hohe Flexibilit&auml;t aus. <\/p>\n<h2>Eingabeparameter der Prozedur<\/h2>\n<p>Schauen Sie sich zun&auml;chst die Eingabeparameter an:<\/p>\n<li>strTabelle: Tabelle, in der die Datei gespeichert werden soll<\/li>\n<li>strPrimaerschluessel: Name des Prim&auml;rschl&uuml;sselfeldes in der Zieltabelle<\/li>\n<li>strZielfeld: OLE-Feld, in dem die Datei gespeichert werden soll<\/li>\n<li>lngID: ID des Datensatzes, dem die Datei hinzugef&uuml;gt werden soll<\/li>\n<li>strFeldSpeicherort: Optional f&uuml;r die Angabe des Namens eines Feldes mit dem Speicherort der zu importierenden Datei<\/li>\n<li>strSpeicherort: Optional f&uuml;r die Angabe des Speicherorts der zu importierenden Datei<\/li>\n<li>bolImDatenbankpfad: Gibt an, ob dem Speicherort das Verzeichnis, in dem sich die Datenbank befindet, vorangestellt werden soll<\/li>\n<h2>Beispielaufrufe der Prozedur<\/h2>\n<p>Um nun beispielsweise eine Datei namens c:\\test.pdf im Feld Datei der Beispieltabelle zu speichern, legen Sie zun&auml;chst einen neuen Datensatz in dieser Tabelle an (siehe Bild 2). Das Vorhandensein eines Datensatzes mit einem OLE-Feld ist Voraussetzung f&uuml;r den Einsatz dieser Prozedur.<\/p>\n<p>Rufen Sie die Funktion im Testfenster nun folgenderma&szlig;en auf:<\/p>\n<p><IMG height=\"164\" src=\"..\/fileadmin\/_temp_\/{49208127-FA0A-4969-A9D0-A0B60F0D177D}\/pic002.png\" width=\"441\" border=\"0\"><\/p>\n<p><!--30percent--><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Ein Datensatz vor dem Import einer Datei<\/span><\/b><\/p>\n<pre>DateiInOLEFeld \"tblDateien\", \"DateiID\", \"Datei\", 1, ,\"c:\\test.pdf\",False<\/pre>\n<p>Dieser Aufruf speichert die Datei c:\\test.pdf in der Tabelle tblDatei im Feld Datei des Datensatzes mit dem Wert 1 im Prim&auml;rschl&uuml;sselfeld DateiID. <\/p>\n<p>Nun k&ouml;nnen Sie mit dem .pdf-Dokument im OLE-Feld nicht allzu viel anfangen. Dass es aber dort angekommen ist, zeigt das erneute &ouml;ffnen der Tabelle (siehe Bild 3).<\/p>\n<p><IMG height=\"164\" src=\"..\/fileadmin\/_temp_\/{49208127-FA0A-4969-A9D0-A0B60F0D177D}\/pic003.png\" width=\"441\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Das OLE-Feld ist nicht mehr leer.<\/span><\/b><\/p>\n<p>Eine zweite Variante f&uuml;r den Aufruf verwendet den Inhalt des Feldes Dateiname als Pfad f&uuml;r die zu importierende Datei:<\/p>\n<pre>DateiInOLEFeld \"tblDateien\", \"DateiID\", \"Datei\", 1, \"Speicherort\", , False<\/pre>\n<p>Durch die Angabe des Wertes &#8222;Speicherort&#8220; f&uuml;r den Parameter strFeldSpeicherort importiert die Funktion die in diesem Feld angegebene Datei &#8211; falls Sie die Datei aus dem vorherigen Beispiel nicht gel&ouml;scht haben, wird diese einfach &uuml;berschrieben.<\/p>\n<p>Diese beiden Varianten k&ouml;nnen beide mit der M&ouml;glichkeit, den aktuellen Datenbankpfad einzubauen, kombiniert werden.<\/p>\n<p>Wenn Sie den Dateinamen im Funktionsaufruf &uuml;bergeben m&ouml;chten, verwenden Sie den reinen Dateinamen ohne Pfadangabe und &uuml;bergeben f&uuml;r den Parameter bolImDatenbankpfad den Wert True. Das Gleiche gilt, wenn Sie den in der Tabelle gespeicherten Dateinamen verwenden m&ouml;chten &#8211; geben Sie einfach den puren Dateinamen an und verwenden Sie die obige Option.<\/p>\n<h2>Aufbau der Prozedur<\/h2>\n<p>Die Prozedur besteht zu einem Gro&szlig;teil aus If Then-Bedingungen, die einen den Parametern entsprechenden Dateinamen ermitteln. Au&szlig;erdem wird im ersten Teil der Prozedur ein Recordset mit dem angegebenen Datensatz der Zieltabelle ge&ouml;ffnet. Erst mit der Open-Anweisung wird die Prozedur richtig interessant und f&uuml;hrt folgende Aktionen durch:<\/p>\n<li>&ouml;ffnen der einzulesenden Datei<\/li>\n<li>Ermitteln der Dateigr&ouml;&szlig;e<\/li>\n<li>Anpassen der Gr&ouml;&szlig;e der Byte-Variablen Buffer<\/li>\n<li>Schreiben der Datei als Bin&auml;rdaten in die Variable Buffer<\/li>\n<li>Einf&uuml;gen des Inhalts dieser Variablen in das Feld Datei des Ziel-Recordsets<\/li>\n<li>Aktualisieren und damit Speichern des bearbeiteten Datensatzes<\/li>\n<p>Erst mit der M&ouml;glichkeit, die Dateien wieder ins Filesystem zu speichern, wird die im vorherigen Kapitel vorgestellte Prozedur interessant.<\/p>\n<p>Die entsprechende Funktion hei&szlig;t OLEFeldInDatei und ist in Quellcode 2 zu finden. Die Eingabeparameter stimmen weitgehend mit denen der Funktion DateiInOLEFeld &uuml;berein, wenn auch f&uuml;r die umgekehrte Richtung.<\/p>\n<p>Voraussetzung f&uuml;r den Export des Inhalts eines OLE-Feldes in eine Datei ist eine Tabelle mit einem OLE-Feld, das mindestens einen Datensatz mit einem gef&uuml;llten OLE-Feld enth&auml;lt.<\/p>\n<p>Die folgenden Beispiele verdeutlichen die Anwendung dieser Funktion. Mit dem ersten Aufruf speichern Sie die soeben importierte Datei im gleichen Verzeichnis, aber unter einem anderen Dateinamen:<\/p>\n<pre>OLEFeldInDAtei \"tblDateien\", \"DateiID\", \"Datei\", 1, ,\"c:\\ExportTest.pdf\"<\/pre>\n<p>Nun stellen Sie die Funktion beider Prozeduren gleichzeitig auf die Probe: Wenn sich das .pdf-Dokument &ouml;ffnen l&auml;sst und mit dem urspr&uuml;nglichen Dokument &uuml;bereinstimmt, sind die Funktionen einsatzbereit. Und da der Autor mit diesen beiden Funktionen schon einige Dateien in einer Datenbank gespeichert und auch wieder dort hervorgeholt hat, sollte das nun auch bei Ihnen funktionieren.<\/p>\n<p>Im zweiten Beispiel soll die .pdf-Datei unter dem Namen ExportTest.pdf im aktuellen Datenbankverzeichnis gespeichert werden:<\/p>\n<pre>OLEFeldInDAtei \"tblDateien\", \"DateiID\", \"Datei\", 1, ,\"c:\\ExportTest.pdf\",True<\/pre>\n<p>Auch dieser Aufruf tut seinen Dienst einwandfrei. Werfen Sie nun einen Blick auf den Quellcode: Wie bei der vorherigen Funktion ermittelt auch hier der erste Teil der Prozedur den zu verwendenden Dateinamen aus den &uuml;bergebenen Parametern und &ouml;ffnet den Datensatz, in dem die zu exportierende Datei enthalten ist.<\/p>\n<p>Der Rest ist eine genaue Umkehrung der Funktion DateiInOLEFeld: Die Prozedur ermittelt die Dateigr&ouml;&szlig;e, schreibt den Inhalt des Feldes in die entsprechend dimensionierte Buffer-Variable und bugsiert deren Inhalt in eine zuvor angelegte Datei.<\/p>\n<p>Die erste Beispielanwendung f&uuml;r diese beiden Funktionen ist die Verwaltung von Bildern, ohne die Datenbank aufzubl&auml;hen. Das passiert n&auml;mlich, wenn Bilder mit Access-Hausmitteln in ein OLE-Feld importiert werden. Access speichert die Bilder dann im Windows-eigenen Format, was entsprechend mehr Speicher frisst.<\/p>\n<pre>Public Function OLEFeldInDatei(strTabelle As String, strPrimaerschluessel As String, _    strQuellfeld As String, lngID As Long, Optional strFeldSpeicherort As String, _    Optional strSpeicherort As String, Optional bolImDatenbankpfad As Boolean) As Long\r\n    Dim cnn As ADODB.Connection\r\n    Dim rst As New ADODB.Recordset\r\n    Dim strSpeicherortTemp As String\r\n    Dim strSpeicherortName As String\r\n    On Error GoTo OLEFeldInDatei_Err\r\n    Set cnn = CurrentProject.Connection\r\n    If Not strFeldSpeicherort = \"\" Then\r\n        strSpeicherortTemp = \", \" & strFeldSpeicherort\r\n    Else\r\n        strSpeicherortTemp = \"\"\r\n    End If\r\n    rst.Open \"SELECT \" & strQuellfeld & strSpeicherortTemp & \" FROM \" & strTabelle _        & \" WHERE \" & strPrimaerschluessel & \" = \" & lngID, cnn, adOpenDynamic, _        adLockOptimistic\r\n    Dim lngExportdateiID As Long\r\n    Dim Buffer() As Byte\r\n    Dim lngDateigroesse As Long\r\n    lngExportdateiID = FreeFile\r\n    If Not strFeldSpeicherort = \"\" Then\r\n        strSpeicherortName = rst(strFeldSpeicherort)\r\n    Else\r\n        strSpeicherortName = strSpeicherort\r\n    End If\r\n    If bolImDatenbankpfad = True Then\r\n        strSpeicherortName = Datenbankpfad & strSpeicherortName\r\n    End If\r\n    lngDateigroesse = Nz(LenB(rst(strQuellfeld)), 0)\r\n    If lngDateigroesse &gt; 0 Then\r\n        ReDim Buffer(lngDateigroesse)\r\n        Open strSpeicherortName For Binary Access Write As lngExportdateiID\r\n        Buffer = rst(strQuellfeld).GetChunk(lngDateigroesse)\r\n        Put lngExportdateiID, , Buffer\r\n        Close lngExportdateiID\r\n    End If\r\n    OLEFeldInDatei = True\r\nOLEFeldInDatei_Exit:\r\n    rst.Close\r\n    Set rst = Nothing\r\n    Set cnn = Nothing\r\n    Exit Function\r\nOLEFeldInDatei_Err:\r\n    OLEFeldInDatei = Err.Number\r\n    Resume OLEFeldInDatei_Exit\r\nEnd Function<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<p>Mit der hier vorgestellten Methode speichern Sie die Bilder in Originaldateigr&ouml;&szlig;e, k&ouml;nnen diese aber nicht direkt in einem OLE-Steuerelement anzeigen lassen. <\/p>\n<pre>Private Sub Form_Current()\r\n    Dim strDateiname As String\r\n    Dim strDatenbankpfad As String\r\n    If Not Me.NewRecord Then\r\n        strDateiname = DLookup(\"Dateiname\", \"tblDateien\", \"DateiID = \" & Me.DateiID)\r\n        strDateiname = DateinameOhnePfad(strDateiname)\r\n        strDatenbankpfad = Datenbankpfad\r\n        OLEFeldInDatei \"tblDateien\", \"DateiID\", \"Datei\", Me.DateiID, , strDateiname, _            True\r\n        If Dir(strDatenbankpfad & strDateiname) = \"\" Then\r\n            Me.objPicture.Picture = \"\"\r\n        Else\r\n            Me.objPicture.Picture = strDatenbankpfad & strDateiname\r\n        End If\r\n    Else\r\n        Me.objPicture.Picture = \"\"\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Dazu sind dann der vorherige Export und das Einstellen der Herkunftsdatei im OLE-Steuerelement erforderlich.<\/p>\n<h3>Hinweis<\/h3>\n<p>Beachten Sie, dass in nachfolgend beschriebenem Formular ein Bildsteuerelement zum Einsatz kommt. Wenn Sie versuchen, damit andere Dateitypen wie zum Beispiel .pdf-Dateien anzuzeigen, l&ouml;sen Sie einen Fehler aus. Statten Sie die Tabelle tblDateien daher zu Beispielzwecken mit ein oder zwei Bilddateien aus und passen Sie auch die Dateinamen in der Tabelle entsprechend an. <\/p>\n<p>Zum Nachvollziehen des Beispiels ben&ouml;tigen Sie ein entsprechendes Formular mit einem ungebundenen Bildsteuerelement. <\/p>\n<p>Gehen Sie folgenderma&szlig;en vor:<\/p>\n<li>Erstellen Sie ein neues Formular namens frmBildanzeige.<\/li>\n<li>Binden Sie das Formular an die Tabelle tblDateien.<\/li>\n<li>F&uuml;gen Sie dem Formular alle Eintr&auml;ge der Feldliste au&szlig;er dem Feld Datei hinzu.<\/li>\n<li>Legen Sie ein Bild-Steuerelement namens picOLE an.<\/li>\n<li>Legen Sie f&uuml;r die Ereigniseigenschaft Beim Anzeigen die Prozedur aus Quellcode 3 an. (<\/li>\n<p>Die Prozedur pr&uuml;ft, ob es sich bei dem aktuellen Datensatz um einen neuen Datensatz handelt &#8211; in diesem Fall w&uuml;rde der Datensatz noch keine Bilddatei enthalten und ohne entsprechende Behandlung einen Fehler beim Anzeigen ausl&ouml;sen. Statt dessen wird einfach die Eigenschaft Picture des Bild-Steuerelements geleert, womit die Anzeige eines Bildes entf&auml;llt. <\/p>\n<p>Wenn es sich um einen bestehenden Datensatz handelt, ermittelt die Prozedur den Dateinamen ohne Pfadangabe aus der Tabelle. <\/p>\n<p>Dazu verwendet sie die Funktion DateinameOhnePfad aus Quellcode 4. Dann verwendet die Prozedur die Funktion OLEFeldInDatei, um den Inhalt des Feldes Datei des aktuellen Datensatzes im Datenbankverzeichnis zu speichern.<\/p>\n<pre>Public Function DateinameOhnePfad(strDateiname As String)\r\n    Dim strDateinameTmp As String\r\n    Dim intPos As Integer\r\n    strDateinameTmp = strDateiname\r\n    intPos = InStr(1, strDateinameTmp, \"\\\")\r\n    Do While Not intPos = 0\r\n        strDateinameTmp = Mid(strDateinameTmp, intPos + 1)\r\n        intPos = InStr(1, strDateinameTmp, \"\\\")\r\n    Loop\r\n    DateinameOhnePfad = strDateinameTmp\r\nEnd Function<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<p>Die gespeicherte Datei nimmt die Prozedur direkt anschlie&szlig;end wieder auf und weist sie der Eigenschaft Picture des Bild-Steuerelements zu. Das f&uuml;hrt zur Anzeige der Bilddatei wie in Bild 4.<\/p>\n<p><IMG height=\"454\" src=\"..\/fileadmin\/_temp_\/{49208127-FA0A-4969-A9D0-A0B60F0D177D}\/pic004.png\" width=\"405\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Anzeige eines auf der Festplatte gespeicherten Bildes<\/span><\/b><\/p>\n<p>Mit den beiden Funktionen OLEFeldInDatei und DateiInOLEFeld k&ouml;nnen Sie Dateien beliebig zwischen Festplatte und Access-Tabellen hin- und herschieben.<\/p>\n<p>Dazu m&uuml;ssen Sie lediglich die in der Beispieldatenbank enthaltenen Funktionen in die gew&uuml;nschte Datenbank importieren und eine Tabelle mit einem OLE-Feld bereitstellen.<\/p>\n<p>Das Speichern von Dateien in einer Access-Tabelle d&uuml;rfte vor allem in Zusammenhang mit Bilddateien Anwendung finden. <\/p>\n<p>Es gibt aber auch noch andere M&ouml;glichkeiten, zum Beispiel bei der Weitergabe von Datenbankanwendungen.<\/p>\n<p>Wenn die Datenbankanwendung beispielsweise externe Tools ben&ouml;tigt, die keine Installation brauchen und &uuml;ber die Kommandozeile beispielsweise im Datenbankverzeichnis aufgerufen werden, k&ouml;nnen Sie diese in einer Tabelle speichern und &#8211; falls nicht ohnehin schon vorhanden &#8211; bei Bedarf tempor&auml;r im Filesystem ablegen und von Access aus aufrufen.<\/p>\n<p>Und wie bereits erw&auml;hnt &#8211; auch die massenweise Bearbeitung von Dateien mit externen Tools oder das Speichern von Dateien in flexibel zu erstellenden Verzeichnisstrukturen ist mit den vorgestellten Funktionen einfach zu realisieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8222;Dateien in einer Datenbank speichern &#8211; wer macht den so was Schon mit ein paar kleinen Bildchen bl&auml;ht man sich doch die Datenbank schon ma&szlig;los auf!&#8220; &#8211; so &auml;hnlich ist die Meinung der meisten Access-Anwender zum Thema dieses Beitrags. Dass es auch ohne Aufbl&auml;hen geht und dass auch das Speichern anderer Dateien als Bilddateien in der Datenbank sinnvoll sein kann, erfahren Sie nachfolgend &#8211; und nat&uuml;rlich lernen Sie auch Funktionen kennen, die Ihnen dabei eine Menge Arbeit abnehmen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022005,662005,44000035,44000021],"tags":[],"class_list":["post-55000269","post","type-post","status-publish","format-standard","hentry","category-66022005","category-662005","category-Datenzugriff_programmieren","category-Tabellen_und_Datenmodellierung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Dateien in Tabellen speichern - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dateien in Tabellen speichern\" \/>\n<meta property=\"og:description\" content=\"&quot;Dateien in einer Datenbank speichern - wer macht den so was Schon mit ein paar kleinen Bildchen bl&auml;ht man sich doch die Datenbank schon ma&szlig;los auf!&quot; - so &auml;hnlich ist die Meinung der meisten Access-Anwender zum Thema dieses Beitrags. Dass es auch ohne Aufbl&auml;hen geht und dass auch das Speichern anderer Dateien als Bilddateien in der Datenbank sinnvoll sein kann, erfahren Sie nachfolgend - und nat&uuml;rlich lernen Sie auch Funktionen kennen, die Ihnen dabei eine Menge Arbeit abnehmen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:57+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg04.met.vgwort.de\/na\/6771f5c3c6584073a6dc5a6b9ae0bec9\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"11\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Dateien in Tabellen speichern\",\"datePublished\":\"2020-05-06T15:17:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/\"},\"wordCount\":1708,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/6771f5c3c6584073a6dc5a6b9ae0bec9\",\"articleSection\":[\"2\\\/2005\",\"2005\",\"Datenzugriff programmieren\",\"Tabellen und Datenmodellierung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/\",\"name\":\"Dateien in Tabellen speichern - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/6771f5c3c6584073a6dc5a6b9ae0bec9\",\"datePublished\":\"2020-05-06T15:17:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/6771f5c3c6584073a6dc5a6b9ae0bec9\",\"contentUrl\":\"http:\\\/\\\/vg04.met.vgwort.de\\\/na\\\/6771f5c3c6584073a6dc5a6b9ae0bec9\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dateien_in_Tabellen_speichern\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dateien in Tabellen speichern\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dateien in Tabellen speichern - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/","og_locale":"de_DE","og_type":"article","og_title":"Dateien in Tabellen speichern","og_description":"\"Dateien in einer Datenbank speichern - wer macht den so was Schon mit ein paar kleinen Bildchen bl&auml;ht man sich doch die Datenbank schon ma&szlig;los auf!\" - so &auml;hnlich ist die Meinung der meisten Access-Anwender zum Thema dieses Beitrags. Dass es auch ohne Aufbl&auml;hen geht und dass auch das Speichern anderer Dateien als Bilddateien in der Datenbank sinnvoll sein kann, erfahren Sie nachfolgend - und nat&uuml;rlich lernen Sie auch Funktionen kennen, die Ihnen dabei eine Menge Arbeit abnehmen.","og_url":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:57+00:00","og_image":[{"url":"http:\/\/vg04.met.vgwort.de\/na\/6771f5c3c6584073a6dc5a6b9ae0bec9","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"11\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Dateien in Tabellen speichern","datePublished":"2020-05-06T15:17:57+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/"},"wordCount":1708,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/6771f5c3c6584073a6dc5a6b9ae0bec9","articleSection":["2\/2005","2005","Datenzugriff programmieren","Tabellen und Datenmodellierung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/","url":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/","name":"Dateien in Tabellen speichern - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#primaryimage"},"thumbnailUrl":"http:\/\/vg04.met.vgwort.de\/na\/6771f5c3c6584073a6dc5a6b9ae0bec9","datePublished":"2020-05-06T15:17:57+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#primaryimage","url":"http:\/\/vg04.met.vgwort.de\/na\/6771f5c3c6584073a6dc5a6b9ae0bec9","contentUrl":"http:\/\/vg04.met.vgwort.de\/na\/6771f5c3c6584073a6dc5a6b9ae0bec9"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Dateien_in_Tabellen_speichern\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Dateien in Tabellen speichern"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000269","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000269"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000269\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}