PDA

Vollständige Version anzeigen : wo finde ich von einem verknüpften OLE-Objekt den Pfad?


Markus
17.01.2003, 20:40
Hi Leute

wenn ich in einem Formular aus einer Tabelle ein gebundenes OLE-Feld aufnehme, so sollte es doch möglich sein den Pfad/Filename anzuzeigen, wenn ein verknüpftes Objekt im OLE-Feld abgelegt ist?

bisher habe ich immer nur leere Anzeigen zurückbekommen.

also z.B ist Msgbox Me!meinOLE.SourceDoc leer, obschon ein vernküpftes Objekt im Feld sitzt.

Ich finde die richtige Eigenschaft nicht. Oder gibt es das nicht?

Markus

Aquarii
17.01.2003, 21:27
Hallo Markus,

schau mal, ob dich dieser Link weiterbringt:

http://www.arstechnica.de/computer/msoffice/vba/vba0024.html

Markus
18.01.2003, 10:00
Hi Heiko & all

Dieser Link zeigt auf, wie man per VBA leere OLE-Objekt-Felder mit verknüpften Objekten belegen kann. Mein Problem ist damit leider nicht gelöst. Wenn ich bestehende OLE-Daten habe, möchte ich den Pfad und den Filename abfragen (und eigentlich auch ändern) können. Access kennt ja diese Daten! Aber ich komme nicht ran.

Gruss Markus

Sascha Trowitzsch
18.01.2003, 11:19
Ich hab da ein Verständnisproblem:

Wenn die die Objekte nicht eingebettet sind, sondern gelinkt - also in der gebundenen Tabelle nur die Pfade zu den Objekten stehen -, so brauchst du ja nur die Tabelleninhalte, um die Herkunft zu bestimmen.

Wenn aber die Worddokumente in der gebundenen Tabelle eingebettet sind - also die kompletten Daten gespeichert -, dann gibt es auch keine Verknüpfung mehr zum Ursprungsort. Dann ist Sourcedoc ="".
Access speichert da IMHO nicht auch zusätzlich den Ursprungspfad ab.

Oder?

Coiao, Sascha

Markus
18.01.2003, 15:10
Ein ganz einfaches Beispiel : einer neuen Tabelle wird ein ein Feld mit OLE-Objekt Feldtyp zugeordnet.
In dieses Feld der Tabelle ordne ich mit der rechten Maustaste und “Durchsuchen“ irgendein File zu, so dass es als Symbol verknüpft ist. Nach dem Speichern kann ich von diesem Objekt Pfad und Filename ansehen, wenn ich das Objekt in der Tabelle markiere, und im Zeilenmenü Bearbeiten -> OLE/DDE-Verknüpfungen wähle.
Genau diese Daten möchte ich in einer Prozedur von einem Formular aus bearbeiten.
Es gibt also in der Tabelle keine zusätzlichen Spalten mit Pfad und Filename.

Markus

Sascha Trowitzsch
18.01.2003, 20:15
OK, leider kann ich das Folgende nicht verifizieren, da ich bei meinem Access im Moment kein verknüpftes Dokument in die Tabelle speichern kann, weil dann jedesmal die Fehlermeldung kommt: "Der OLE-Server ist nicht registriert. Installieren sie ihn neu." Schrott!

Es ist so: Das OLE-Steuerelement zeigt ein bestimmtes OLE-Objekt an, das einen OLE-Server zur Verfügung stellt.

Bei Word-Objekten wird z.B. bei

Msgbox TypeName(MeinOleSteuerelement.Object)

"Document" angezeigt. Ergo haben wir ein Word-Document-Objekt vor uns.
Die Herkunft dessen ist in der Eigenschaft "Fullname" gespeichert.

Was also funktionieren könnte, ist:

(Beim Anzeigen)

strHerkunft = MeinOLESteuerelement.Object.Fullname

Probier's mal aus.

Ansonsten gibt es nur folgenden (IMHO nicht 100% zuverlässigen) Code:

http://support.microsoft.com/default.aspx?scid=kb;en-us;170531


Ciao, Sascha

Nachtrag: Die Geschichte mit .FullName funktioniert nicht bei verlinktem Objekt, nur bei eingebettetem. (Eigentlich auch logisch, da bei gelinktem Doc das Steuerelement-Objekt nicht das Document ist, sondern der OLE-Server selber.)
Hingegen scheint der Code aus dem MS-Link ganz gut zu funktionieren.

Markus
20.01.2003, 12:41
Das hat mir sehr geholfen. Hab den MS-code hingekriegt.

wichtig ist mir aber auch diese Bemerkung:
"Storing the path in a separate text field when you link the OLE object is the best way to ensure that you will be able to retrieve the path later"

Ich werd mich zukünftig daran halten. Und mit dem Code kann ich das für die bisherigen Daten ja nachholen: :)

mit liebem Gruss
Markus

olli13
02.06.2003, 13:29
Servus

Hab mir auch den MS-Code zurechtgeschustert, aber so recht funktioniert das noch nicht:

Bei manchen Dateien (alle liegen im gleichen Verzeichnis und haben die selbe Namenskonvention) wird der Datei- und/oder Verzeichnisname verstümmelt, bzw. auf 8+3 gekürzt. Im OLE-Feld wird die Datei (alles Word-Dokumente) richtig angezeigt, aber die Funktion schmeisst den Pfad verstümmelt raus.

Irgendwelche Ideen ??

Danke im Voraus
olli13

Nouba
02.06.2003, 19:19
vielleicht kannst Du mit Get Short and Long file names (http://www.mvps.org/access/api/api0020.htm) dem Problem auf die Schliche kommen.

olli13
03.06.2003, 11:40
danke, aber kann das sein, das die GetLongName-Geschichte nicht mit Netzlaufwerken funktioniert ???