Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: karsolek am August 05, 2011, 11:35:18

Titel: OLE-Objekte aus einer Access 2003-Tabelle per VBA in Word öffnen und bearbeiten
Beitrag von: karsolek am August 05, 2011, 11:35:18
Hallo,

ich habe in einer Access 2003-Tabelle eine Spalte vom Typ OLE-Objekt angelegt, in der ich Word-Dateien als Verknüpfung einbinde. Diese Dateien dienen als Fragmente, aus denen später ein Word-Dokument zusammengeführt werden soll. Dazu mächte ich per VBA einen Datensatz suchen, das darin verknüfte OLE-Objekt in Word öffnen und bearbeiten. Anschließend will ich dann noch den Inhalt kopieren, um ihn in mein Zieldokument zu pasten.

Das Ganze funktioniert, wenn ich ein OLE-Objekt über ein BoundObjectFrame in einem Formular aktiviere. Ich möchte aber nach Möglichkeit ohne Formular auskommen und einfach nur das in der Tabelle gespeicherte/referenzierte OLE-Objekt öffnen.

Hat hierzu jemand eine gute Idee? Es muss doch irgendwie möglich sein, auch ohne Formular an ein OLE-Objekt heran zu kommen, oder?! Ich würde dir Datei auch direkt öffnen, aber aus der Datenbank kriege ich auch den Pfad und Namen des verknüpften Dokuments nicht heraus.

Ich bin dankbar für jeden heißen Tipp.

Viele Grüße,


   Karsten
Titel: Re: OLE-Objekte aus einer Access 2003-Tabelle per VBA in Word öffnen und bearbeiten
Beitrag von: database am August 05, 2011, 13:22:03
Hallo,

ohne jetzt tiefer in die Materie zu gehen...

ZitatIch möchte aber nach Möglichkeit ohne Formular auskommen
...wird nicht leicht möglich sein.
Irgendwo muss dein OLE-Objekt dargestellt sein oder zumindest ein Bezug dazu hergestellt werden können um das selbige per VBA ansprechen zu können.
Formulare sind in der Regel dazu am Besten geeignet.

Wenn der Dateiname und der Speicherpfad des zu öffnenden Objekts ausgelesen werden können, sollte es kein großes Problem sein, die entsprechende Word-Datei über die VBA-Schnittstelle zu öffnen.

Siehe dazu:
http://www.access-o-mania.de/forum/index.php?topic=2908.0 (http://www.access-o-mania.de/forum/index.php?topic=2908.0)

Zitat...aber aus der Datenbank kriege ich auch den Pfad und Namen des verknüpften Dokuments nicht heraus
Wenn dieser nicht explizit in einer Tabelle gespeichert wurde wird es auch ein bisschen schwierig werden.
Mit folgendem Befehl sollte es aber aus dem Formular lt. Google mit angezeigtem OLE-Objekts gehen:


strPfad = Forms("NameDeinesFormulars").DeinOLEObjekt.SourceDoc


HTH
Titel: Re: OLE-Objekte aus einer Access 2003-Tabelle per VBA in Word öffnen und bearbeiten
Beitrag von: karsolek am August 09, 2011, 07:02:56
Hallo Peter,

danke für Deine Antwort. Die SourceDoc-Eigenschaft bleibt bei mir leer, wenn ich durch die Datensätze blättere, in denen OLE-Objekte verlinkt sind. Deshalb habe ich mir jetzt einen anderen Weg überlegt. Die Verknüpfung lege ich nun selbst an über einen Dateiauswahldialog. Den Pfad speichere ich dann einfach selbst in der Datenbank, so dass ich dann auch für den Zugriff auf die Datei kein OLE-Objekt und damit auch kein Formular benötige sondern direkt über VBA Word aufrufe und darin die erforderlichen Dateien öffne. Ob das die eleganteste Lösung ist, weiß ich nicht, aber ich komme zum Ziel.

Nochmals Danke für die schnelle Hilfe!

Beste Grüße,


   Karsten
Titel: Re: OLE-Objekte aus einer Access 2003-Tabelle per VBA in Word öffnen und bearbeiten
Beitrag von: database am August 09, 2011, 09:01:05
Hallo,

habe in der Zwischenzeit ebenfalls herausgefunden, dass es in der Angelegeheit mit OLE-Feldern das Problem gibt, dass SourceDoc einen Leerstring zurückgibt.

ZitatOb das die eleganteste Lösung ist, weiß ich nicht, aber ich komme zum Ziel

Eleganz wird nicht bezahlt!
Wenn es auf die eine Weise nicht zu lösen ist, muss eben eine andere her - also dann ...  ;)

Gutes Gelingen!