Dateien aus Access Anlage-Feld mit VBA extrahieren

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 มิ.ย. 2024
  • Der #Anlage-Datentyp in Microsoft #Access Tabelle ist ein nützlicher und bequemer Weg, um Dateien zusammen mit verwandten Datensätzen in deiner #MsAccess Datenbank zu speichern.
    In diesem Video zeige ich, wie du alle Dateien aus einer beliebigen Anlage-Spalte aus einer beliebigen Tabelle in deiner Access Datenbank wieder in einen Ordner in das Dateisystem exportieren kannst.
    Eine Beispieldatei mit den Prozeduren aus dem Video kannst du hier herunterladen: codekabinett.com/download/Extr...
    00:00 Einleitung
    01:00 Szenarios, in denen man Dateien aus Anlage-Felder extrahieren möchte
    04:46 Wie Anlage-Felder in Tabellen und Abfragen funktionieren
    10:54 Wie du Dateien aus Access-Anlage-Feldern mit VBA extrahieren kannst
    21:12 Wie du Dateien aus Anlage-Feldern in verknüpften SharePoint-Listen extrahierst
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 9

  • @pawelpopolski9004
    @pawelpopolski9004 2 ปีที่แล้ว +2

    Nice. Ich habe diesen Felddatentypen schon mehrere male verwendet. Ausgesprochen freundlich in der Anwendung. Musste die Daten aber noch nie extrahieren. Sollte das jetzt mal vorkommen, weiss ich wie es geht. Besten Dank!

  • @sp1derman11
    @sp1derman11 ปีที่แล้ว

    Klasse! Das Video war vorhin der Einstieg, das Thema anzugehen. Läuft super. Ein paar tausend Anhänge gehabt, jetzt per Button alles bereinigt. Hunderte Unterverzeichnisse angelegt, Button angelegt, um die Anlagen jetzt vom Filesystem aufzurufen, Button angelegt, um neue Dateien hinzuzufügen. Besser zu handhaben und das Backend steht nicht mehr kurz vor dem Kollaps. Das Handling für mehrere Anhänge bei einem Datensatz hats gebracht. Danke!

    • @CGohlkeMixes
      @CGohlkeMixes ปีที่แล้ว

      Das geht doch auch, indem man die Dateien einfach in eine extra Tabelle schreibt und dann beliebig vielen einem Indexwert zuordnen kann. Ich lasse die Indexwerte (und gegebenenfalls noch einen Ordnungszahl) einfach bei der ersten Zuordnung in die Dateinamen schreiben. Es spielt dann keine Rolle, in welchem Unterverzeichnis etwas liegt, weil man die Tabelle durch komplettes Einlesen aller Dateien einfach beliebig oft neu aufbauen kann. Wenn man die Indexzahl (und ggf. die Odrnungszahl) bei der Erstellung einer Datei kennt, kann man die Datei auch direkt mit diesen Namen speichern und es muss dann gar nichts mehr manuell in der Datenbank zugeordnet werden.

    • @sp1derman11
      @sp1derman11 ปีที่แล้ว

      @@CGohlkeMixes Oh seh ich jetzt erst. Du hast natürlich recht, man könnte alle Dateien in ein Verzeichnis schreiben und über eine Zuordnungstabelle dem entsprechenden Record zuordnen. Ich habe für jeden Datansatz, dem Dateien zugeordnet sind, ein eigenes Verzeichnis angelegt, weil man so einfach weitere Dateien in das Verzeichnis kopieren kann und diese dann in Access aufgerufen werden können. Natürlich habe ich ebenfalls eine Zuordnungstabelle, da die Dateien verschiedenen Themenbereichen zugeordnet sind. Ich habe im Formular einen Button, um die Dateien im Verzeichnis zuzuordnen, umzubenennen usw. Dann weitere Buttons (bzw. combobox), um entweder alle dem Datensatz zugeordnete Dateien in einer Listbox anzuzeigen (dort dann Einfach- Mehrfachauswahl zum Öffnen möglich) oder aber Optionen, um nur die Dateien zu einem bestimmen "Thema" anzuzeigen. Teilweise werden die Dateien in einer bestimmten Namenskonvention im Verzeichnis gespeichert und dadurch automatisch einem "Thema" zugeordnet. Mir hat das alles das Leben leichter gemacht, die Datenbank war kurz vorm Platzen, deswegen nochmals Danke an Philipp.

  • @CGohlkeMixes
    @CGohlkeMixes ปีที่แล้ว

    Wenn man sich dazu entschließt, seine Datenbank mit den Attachments zu versehen, sollte man das schon im Vorfeld abschätzen, wie viele Daten da rein sollen, damit es nicht zu Problemen mit Dateigrößen kommt. Ich denke, dass mit der Attachment-Methode mehr Probleme geschaffen als gelöst werden. Bei der Funktion würde ich den Dateinamen auf der Festplatte mit den geeigneten Indexdaten speichern, damit man die Datei später automatisch einlesen und zuordnen kann.

  • @domdom1557
    @domdom1557 หลายเดือนก่อน +1

    Schönen guten Tag. Ich möchte vorweg einmal gestehen, dass ich mit VBA leider sehr wenig am Hut habe. Ich habe mich also mehr oder weniger einfach an diesem Video entlang gehangelt. Momentan versuche ich auch aus einer SharePoint-Liste die Anhänge runterzuladen und auf unserem Laufwerk abzulegen. Wenn ich aber alles genau so eingebe, nur eben mit den Namen meiner Liste, dem Namen der Spalte mit den Anhängen und meinem Ablageort, spuckt er mir folgende Meldung aus:
    Fehler beim Kompilieren:
    Sub oder Function nicht definiert
    Danach ist die erste Zeile, also "Public Sub ExtractAllAttachments(ByVal TableName As String, ByVal AttachmentColumnName As String, ByVal ToDirectory)" gelb markiert und "ExtractFilenameFromFullPath" ist ausgewählt / blau markiert. Vielleicht sagt dir die Meldung ja etwas und kannst mir weiterhelfen.
    Ansonsten vielen Dank für das Video! Mir ist jetzt zumindest bewusst, dass der Fehler nicht an mir liegt, dass ich nicht mehrere Anlagen gleichzeitig runterladen kann.

    • @codekabinettcomde
      @codekabinettcomde  หลายเดือนก่อน +1

      Entweder fehlt die Prozedur ExtractFilenameFromFullPath oder du hast einen Tippfehler in Namen.
      Ich habe gerade meine Beispieldatei zu dem Video hochgelanden.
      codekabinett.com/download/Extract_Attachment.zip
      Vielleicht hilft es dir weiter, wenn du dir mein Beispiel anschaust, und verlgeichst, wo du wesentliche Abweichungen hast.

    • @domdom1557
      @domdom1557 หลายเดือนก่อน

      @@codekabinettcomde Vielen Dank! Habe zumindest herausfinden können, was bei mir gefehlt hat. Er gibt mir aber trotzdem den Fehler "Laufzeitfehler "3131": Syntaxfehler in FROM-Klausel." aus. Ich hätte doch eine Ausbildung im Bereich Programmierung machen sollen, damit mir nicht alles Spanisch vorkommt.

  • @neojumpy
    @neojumpy 2 ปีที่แล้ว +1

    Tja, deshalb habe ich nie diesen Feldtyp verwendet. Nicht nur der Grund der 2GB spricht dagegen, sondern auch das dieser Feldtyp nur im ACCDB-Format existiert. Hätte der Kunde auf z.B. mysql migrieren wollen, hätte er exakt das gleiche Problem. Aber für den "Hausgebraucht" ist dieser Feldtyp sicher ganz nett.