Ich habe eine DB, in der PDF-Dateien per "Objekt einfügen" (OLE-
Verknüpfung - heißt das glaube ich) verdrahtet wurden. Nun ist das so
gekommen, wie es kommen muss .... Die DB musste verschoben werden und
nun geht nix mehr.
Wie kann ich per VBA die Vernüpfungen aktualisieren?
Zu dieser Problematik habe ich vor längerer Zeit schon ein Posting
gelesen, ich finde es leider nicht wieder.
Besser ist es wohl, den direkten Pfad zu speichern (so lese ich das
aus zahlreichen Postings). Kann ich das in einem Rutsch mit erledigen?
Wie ?
Für Hinweise und Anregungen wäre ich dankbar.
Viele Grüße Stefan.
(ACC2003)
Stefan Paesch wrote:
> Moin zusammen!
>
> Ich habe eine DB, in der PDF-Dateien per "Objekt einfügen" (OLE-
> Verknüpfung - heißt das glaube ich) verdrahtet wurden. Nun ist das so
> gekommen, wie es kommen muss .... Die DB musste verschoben werden und
> nun geht nix mehr.
>
> Wie kann ich per VBA die Vernüpfungen aktualisieren?
> Zu dieser Problematik habe ich vor längerer Zeit schon ein Posting
> gelesen, ich finde es leider nicht wieder.
>
> Besser ist es wohl, den direkten Pfad zu speichern (so lese ich das
> aus zahlreichen Postings). Kann ich das in einem Rutsch mit erledigen?
> Wie ?
Schau Dir doch mal Andrés Beispiel an :
http://www.access-im-unternehmen.de/205.0.html
Gruss
Jens
Stefan Paesch schrieb:
> Ich habe eine DB, in der PDF-Dateien per "Objekt einfügen" (OLE-
> Verknüpfung - heißt das glaube ich) verdrahtet wurden. Nun ist das so
> gekommen, wie es kommen muss .... Die DB musste verschoben werden und
> nun geht nix mehr.
>
> Wie kann ich per VBA die Vernüpfungen aktualisieren?
> Zu dieser Problematik habe ich vor längerer Zeit schon ein Posting
> gelesen, ich finde es leider nicht wieder.
>
> Besser ist es wohl, den direkten Pfad zu speichern (so lese ich das
> aus zahlreichen Postings). Kann ich das in einem Rutsch mit erledigen?
> Wie ?
um wieviele Objekte geht es denn? IMHO solltest Du Dir da nicht all zu
viele Gedanken um eine automatisierte Migration machen sondern statt
dessen die Anpassungen von Hand vornehmen.
In Dein Formular fügst Du das Adobe-OCX ein. Dazu öffnest Du Dein
Formular in der Entwurfsansicht und wählst aus dem Menü "Einfügen" den
Punkt "ActiveX-Steuerelemente...". Dort suchst Du nach "Adobe PDF Reader".
Die Anzeige eines gespeicherten PFDs im Adobe-OCX kannst Du mit
folgendem Code erledigen:
- - 8< - - 8< - - 8< - -
Dim objOCX As AcroPDF
Set objOCX = Me!DeinPDFSteuerelement.Object
objOCX.LoadFile "C:\Dein\Pfad\DeineDatei.pdf"
Set objOCX = Nothing
- - 8< - - 8< - - 8< - -
Im Objektkatalog (F4) kannst Du Dir anzeigen lassen, welche Methoden das
OCX von Adobe noch bereitstellt. Dazu wählst Du als Bibliothek die
"AcroPDFLib" aus. Nach dem Du die Klasse "AcroPDF" markiert hast
offenbart das OCX Dir seine Eigenschaften und Methoden.
HTH
--
Thomas
Homepage: www.Team-Moeller.de
vielen Dank für Deinen Tipp.
> um wieviele Objekte geht es denn? IMHO solltest Du Dir da nicht all zu
> viele Gedanken um eine automatisierte Migration machen sondern statt
> dessen die Anpassungen von Hand vornehmen.
sind nur 544 Datensätze :-(
Viele Grüße Stefan.
Foren schrieb:
>> um wieviele Objekte geht es denn? IMHO solltest Du Dir da nicht all zu
>> viele Gedanken um eine automatisierte Migration machen sondern statt
>> dessen die Anpassungen von Hand vornehmen.
>
> sind nur 544 Datensätze :-(
Schau Dir mal diese Routine von Stephen Lebans an:
http://www.lebans.com/oletodisk.htm
(Link in einer Zeile)
Damit solltest Du die OLE-Objekte als Datei speichern können.
"Thomas Möller" <Thomas_N_...@Team-Moeller.de> schrieb im Newsbeitrag
news:6ulnvpF...@mid.individual.net...
Er hat gelinkte OLE-Objekte drin. Die wird er schwerlich auf Platte speichern
können, wenn das Link-Verzeichnis nicht mehr stimmt. ;-)
Ich habe übrigens gestern wegen dieses Threads zwei Stunden damit verbracht,
über OLE-Funktionen was rauszukriegen, wie die Links geändert werden könnten, da
es ähnliche Anfragen schon öfters gab.. Es klappt nicht - ist saukompliziert.
Statt mit dem OLE-API könnte man es sicher auch wie Lebans machen, der das Ganze
binär auseinander nimmt, aber es gibt zuwenig Unterlagen über den Aufbau der
OLE-Objekte, zumal die in unterschiedlichsten Variationen (OLE1, 2) in den
Feldern drin sein können.
EIn bisschen was findet man hier, aber es ist nicht vollständig genug:
http://msdn.microsoft.com/en-us/library/cc313062.aspx
Ciao, Sascha
> Wie kann ich per VBA die Vernüpfungen aktualisieren?
> Zu dieser Problematik habe ich vor längerer Zeit schon ein Posting
> gelesen, ich finde es leider nicht wieder.
Ich habe die Aufgabe, den Pfad auf per OLE verknüpfte Dateien zu
aktualisieren, vor Jahren einmal über einen kleinen "Umweg" gelöst.
Du benötigst ein Formular mit einem Objektfeld, dass an das OLE-Feld der
Tabelle gebunden ist. Dieses kann auch unsichtbar im Hintergrund laufen!
Dann kannst du mittels VBA dem Feld ein neues Objekt zuweisen. Die
nötigen Schritte sind relativ simpel:
With Me!OLEFeldName
.Locked = False
.Class = "Excel.Sheet"
.OLETypeAllowed = acOLEEmbedded
.SourceDoc = sDateiName
.Action = acOLECreateEmbed
End With
Als Klasse hatte ich damals ermöglicht:
- "Excel.Sheet" für Excel,
- "Word.Document" für Word,
- "Powerpoint.Show" für PowerPoint.
Vielleicht hilft es weiter?
Grüße aus Bremen,
Stefan
vielen Dank für Eure Mühen. Da habe ich schon mal einen Ansatz, an dem ich
mich hochhangeln kann. Wenn ich da was gebacken bekomme, poste ich es.
Viele Grüße Stefan.
Was mir gerade noch auffällt: "acOLECreateEmbed" fügt das Objekt in die
Tabelle ein, für einen Verweis müsste es ähnlich wie "acOLECreateLinked"
heißen.
Viele Grüße aus Bremen,
Stefan
Moin!
Also der Tipp http://www.lebans.com/oletodisk.htm hat mich schon deutlich
weiter gebracht.
Lebans hat in dem Form 'OleObjectInfo' ein Feld, in dem der Package- bzw.
der verlinkte Dateiname ausgegeben wird. Das ist das, was ich gesucht habe.
Nun kann ich den Pfad anpassen und direkt speichern.
Spricht aus Eurer Sicht etwas gegen einen Hyperlink?
Viele Gr��e Stefan.
> Also der Tipp http://www.lebans.com/oletodisk.htm hat mich schon deutlich
> weiter gebracht.
>
> Lebans hat in dem Form 'OleObjectInfo' ein Feld, in dem der Package- bzw.
> der verlinkte Dateiname ausgegeben wird. Das ist das, was ich gesucht
> habe. Nun kann ich den Pfad anpassen und direkt speichern.
Vorsicht, bei Package zeigt Lebans in diesem Feld den Namen der Icon-Source
an und nicht des Contents. Falls es dieselbe Datei ist, macht das aber
nichts.
Gruss
Oliver
Hallo Oliver,
wieder etwas dazu gelernt. Danke f�r den Hinweis.
Ich habe in den OLE-Feldern nur die Verlinkung der PDF�s"gespeichert". Die
eigentlichen Dateien liegen auf der Platte.
Manchmal hat man Gl�ck ..... :-).
Viele Gr��e Stefan.