OLE Objekte per VBA in Access speichern

Von: , Frage gestellt am Do, 4. Sep 2008

Hallo,

ich suche nach einer Möglichkeit per VBA OLE-Objekte in einer Access-Tabelle zu speichern.

Gibt es eine Möglichkeit per SQL Dateien in einer Tabelle abzulegen? Also im Prinzip sowas wie:
INSERT INTO Tabelle (ID, OLE-Objekt) VALUES ("xyz", [Dateiname]);

Gibt es des Weiteren eine Möglichkeit aus VBA heraus den Inhalt eines Objektes in einer Tabelle zu speichern? Also im Prinzip folgendermaßen:
INSERT INTO Tabelle (ID, OLE-Objekt) VALUES ("xyz", [Variable]);

Vielen Dank für die Hilfe!

Viele Grüße,
Christopher

4 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden 0 hilfreich
    Re: OLE Objekte per VBA in Access speichern

    Hallo Christopher, ich suche nach einer Möglichkeit per VBA OLE-Objekte in einer
    Access-Tabelle zu speichern.
    diese Möglichkeit gibt es Gibt es eine Möglichkeit per SQL Dateien in einer Tabelle
    abzulegen? Also im Prinzip sowas wie:
    INSERT INTO Tabelle (ID, OLE-Objekt) VALUES ("xyz",
    [Dateiname]);
    klar, schau dir mal z.B. DOCMD und seine Funktion RUNSQL an Gibt es des Weiteren eine Möglichkeit aus VBA heraus den
    Inhalt eines Objektes in einer Tabelle zu speichern? Also im
    Prinzip folgendermaßen:
    INSERT INTO Tabelle (ID, OLE-Objekt) VALUES ("xyz",
    [Variable]);
    klar, schau dir mal z.B. DOCMD und seine Funktion RUNSQL an

    BTW: es bläht die Datenbank erheblich auf, wenn du z.B. Bilder in einer Tabelle als OLE-Objekte speichern willst.

    Schau dir die Links hier in den FAQ:2035 mal an, dort gibt es zum Thema reichlich Beispiele und Lösungen.

    Grüße aus Schönberg (Lübeck)
    Wolfgang
    (Netwolf)

  2. Antwort von nach 2 Stunden 0 hilfreich
    Re: OLE Objekte per VBA in Access speichern

    Hallo, Gibt es eine Möglichkeit per SQL Dateien in einer Tabelle
    abzulegen? Also im Prinzip sowas wie:
    INSERT INTO Tabelle (ID, OLE-Objekt) VALUES ("xyz",
    [Dateiname]);
    Nein Gibt es des Weiteren eine Möglichkeit aus VBA heraus den
    Inhalt eines Objektes in einer Tabelle zu speichern? Also im
    Prinzip folgendermaßen:
    INSERT INTO Tabelle (ID, OLE-Objekt) VALUES ("xyz",
    [Variable]);
    Naja, wo bleibt denn hier VBA?

    Insofern: auch nein.

    Vielleicht meinst Du aber: Binären Datei-Inhalte in einem Tabellenfeld zu speichern und ggf. auch wieder zurück in eine Datei zu bringen.


    Dafür gibt es (u. a.) die Getchunk- und Appendchunk-Methoden des DAO-Zugriffsmodells.

    Lies mal hier:
    http://www.dbwiki.de/wiki.php?title=VBA_Tipp:_Bin%E4...



    Viele Grüße vom Bodensee
    Franz , DF6GL

    PS: Feedback erwünscht!

    • Antwort von nach 20 Stunden 0 hilfreich
      Re^2: OLE Objekte per VBA in Access speichern

      Hallo,

      vielen Dank für die Hilfe.

      Mit AppendChunk und GetChunk kann ich jetzt zumindest schonmal binäre Dateien in die Datenbank importieren und auch wieder exportieren.
      Das funktioniert also schonmal soweit...

      Nun möchte ich jedoch auch, falls dies irgendwie möglich ist, den Inhalt einer beliebigen Variant-Variablen als Binärdaten in eine Tabelle schreiben.
      Mit einem Workaround, der die Daten zunächst als temporäre Datei abspeichert und dann wieder in die Datenbank importiert, funktioniert das ganze. Aber gibt es da evtl. auch eine "elegantere" Möglichkeit, einfach binäre Daten in eine Tabelle zu schreiben und wieder auszulesen?

      Viele Grüße,
      Christopher [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: OLE Objekte per VBA in Access speichern

        Hallo, Nun möchte ich jedoch auch, falls dies irgendwie möglich ist,
        den Inhalt einer beliebigen Variant-Variablen als Binärdaten
        in eine Tabelle schreiben.
        und was verstehst Du denn unter "Variant-Variablen als Binärdaten" ??

        Was steht da in dieser Variablen ?


        Viele Grüße vom Bodensee
        Franz , DF6GL

        PS: Feedback erwünscht!

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!