Verknüpfte Worddokumente im Bericht anzeigen

Suche Lösung für folgendes Problem:

Es sollen mehrere Word-Dokumente in einem Access-Bericht angezeigt werden. Das geht problemlos, wenn ich in einer Tabelle die Dokumente in einem OLE-Feld speichere und sie dann in einem OLE-Feld des Berichts ausgebe.

Ich möchte die Dokumente aber nicht speichern, sondern nur verknüpfen. Habe in der Tabelle zwar schon Felder für den Pfad und den Dateinamen, kenne aber nicht den Befehl, wie ich damit dann das Dokument im Bericht anzeigen kann. Mit „picture“ geht es nicht.

Für eine gute Idee wäre ich sehr dankbar.

Suche Lösung für folgendes Problem:

welche Access-Version?

Es sollen mehrere Word-Dokumente in einem Access-Bericht
angezeigt werden. Das geht problemlos, wenn ich in einer
Tabelle die Dokumente in einem OLE-Feld speichere und sie dann
in einem OLE-Feld des Berichts ausgebe.

also ein gebundenes OLE-Feld (an eine Tabelle gebunden)

Ich möchte die Dokumente aber nicht speichern, sondern nur
verknüpfen.

dann nutze doch einfach ein ungebundenes OLE-Feld

per VBA kannst du dann den Pfad für das Herkunftsdokument zuweisen.
Der OLE-Typ sollte dann „Verknüpft“ sein.

Grüße aus Rostock
Wolfgang
(Netwolf)

Vielen Dank zunächst für die Antwort. War zwei Tage weg und konnte deshalb nicht antworten.

Ok. Die Version ist Access 2000, aber auch 2003 und 2007. Soll also von unten nach oben kompatible sein.

per VBA kannst du dann den Pfad für das Herkunftsdokument
zuweisen.
Der OLE-Typ sollte dann „Verknüpft“ sein.

Ja aber wie genau sieht die Zuweisung im VBA-Code dann aus (Befehl?).

Gruß M.B.

Hallo,

Ok. Die Version ist Access 2000, aber auch 2003 und 2007. Soll
also von unten nach oben kompatible sein.

2003 - > 2007 ist ok, eine 2000er Version würde ich nicht mit einbinden (die Version hatte zu viele Fehler)

Ja aber wie genau sieht die Zuweisung im VBA-Code dann aus
(Befehl?).

Tipp:

  • Ungebundenes Bild in das Formular einfügen
  • Eigenschaften aufrufen
  • in die Zeile Herkunftsdokument klicken
  • F1 drücken

Dann bekommt man direkt die Hilfe von z.B. Access 2007:

Access 2007-Entwicklerreferenz > Objektmodellreferenz für Access > BoundObjectFrame-Objekt > Eigenschaften

BoundObjectFrame.SourceDoc-Eigenschaft (Herkunftsdokument)

Mit der SourceDoc-Eigenschaft können Sie die Datei angeben, mit der eine Verknüpfung (OLE/DDE-Verknüpfung: Eine Verbindung zwischen einem OLE-Objekt und seinem OLE-Server oder zwischen einem DDE-Herkunftsdokument [Dynamic Data Exchange oder dynamischer Datenaustausch] und einem Zieldokument.) hergestellt oder die eingebettet (Einbetten: Eine Kopie eines OLE-Objekts aus einer anderen Anwendung einfügen.

Bei der Herkunft des Objekts, dem so genannten OLE-Server, kann es sich um eine beliebige Anwendung handeln, die OLE (Object Linking and Embedding) unterstützt. Änderungen an einem eingebetteten Objekt werden im Originalobjekt nicht widergespiegelt.) werden soll, wenn Sie in Visual Basic mit der Action-Eigenschaft ein verknüpftes oder eingebettetes Objekt erstellen. String-Wert mit Lese-/Schreibzugriff.
Syntax

Ausdruck.SourceDoc

Ausdruck Eine Variable, die ein BoundObjectFrame-Objekt darstellt.

Anmerkungen

Geben Sie für ein eingebettetes Objekt den vollständigen Pfad und den Namen der Datei an, die Sie als Vorlage verwenden möchten, und stellen Sie die Action-Eigenschaft auf acOLECreateEmbed ein.

Geben Sie für ein verknüpftes Objekt den vollständigen Pfad und den Namen der Datei an, zu der eine Verknüpfung hergestellt werden soll, und stellen Sie die Action-Eigenschaft auf acOLECreateLink ein.

Obwohl diese Eigenschaft im Eigenschaftenfenster erscheint, wird sie erst wirksam, nachdem die Action-Eigenschaft in einem Makro oder mit Visual Basic festgelegt wurde.

Verwenden Sie die SourceDoc-Eigenschaft, um die Datei anzugeben, mit der eine Verknüpfung hergestellt werden soll, und die SourceItem-Eigenschaft des Steuerelement, um die aus der Datei gewünschten Daten anzugeben. Wenn Sie eine Verknüpfung mit dem gesamten Objekt herstellen möchten, dürfen Sie keinen Wert für die SourceItem-Eigenschaft angeben.

Bei der Erstellung eines verknüpften ungebundenen Objekts wird die Einstellung der SourceItem-Eigenschaft des Steuerelements mit der Einstellung seiner SourceItem-Eigenschaft verkettet.

In der Formularansicht (Formularansicht: Ein Fenster, in dem ein Formular angezeigt wird, in dem Daten angezeigt oder angenommen werden können. Die Formularansicht ist das wichtigste Hilfsmittel zum Hinzufügen und Ändern von Daten in Tabellen.

In dieser Ansicht kann der Entwurf eines Formulars auch geändert werden.), der Datenblattansicht (Datenblattansicht: Ein Fenster, das Daten aus einer Tabelle, einem Formular, einer Abfrage, einer Sicht oder einer gespeicherten Prozedur in einem Zeilen/Spalten-Format anzeigt.

In der Datenblattansicht können Sie Felder bearbeiten, Daten hinzufügen oder löschen und nach Daten suchen.) und der Seitenansicht (Seitenansicht: Eine Ansicht, in der das Dokument so angezeigt wird, wie es gedruckt aussehen wird.) besteht die Einstellung der SourceItem-Eigenschaft des Steuerelements aus einer leeren Zeichenfolge (Leere Zeichenfolge: Eine Zeichenfolge, die keine Zeichen enthält.

Sie können eine leere Zeichenfolge verwenden, um anzugeben, dass für ein Feld kein Wert vorhanden ist. Um eine leere Zeichenfolge einzugeben, geben Sie zwei Anführungszeichen ohne Leerzeichen ein ("") ein.) (" ") und die Einstellung seiner SourceDoc-Eigenschaft aus dem vollständigen Pfad zu der verknüpften Datei, gefolgt von einem Ausrufezeichen (!) oder einem umgekehrten Schrägstrich () und der Einstellung der SourceItemSourceItem-Eigenschaft, wie im folgenden Beispiel gezeigt:

„C:\Work\Qtr1\Revenue.xls!R1C1:R30C15“

Beispiel

Im folgenden Beispiel wird mit einem ungebundenen Objektfeld namens OLE1 ein verknüpftes OLE-Objekt erstellt und die Größe des Steuerelements so angepasst, dass der gesamte Inhalt des Objekts angezeigt wird, wenn der Benutzer auf eine Befehlsschaltfläche klickt.

Visual Basic für Applikationen
Sub Command1_Click
OLE1.Class = „Excel.Sheet“ ’ Set class name.
’ Specify type of object.
OLE1.OLETypeAllowed = acOLELinked
’ Specify source file.
OLE1.SourceDoc = „C:\Excel\Oletext.xls“
’ Specify data to create link to.
OLE1.SourceItem = „R1C1:R5C5“
’ Create linked object.
OLE1.Action = acOLECreateLink
’ Adjust control size.
OLE1.SizeMode = acOLESizeZoom
End Sub

*-----------------Ende Access Hilfe

hth

Grüße aus Rostock
Wolfgang
(Netwolf)

Toll, dass sich jemand soviel Mühe gibt. Habe ich nicht erwartet. Deshalb erstmal vielen Dank für die umfangreiche Antwort. Ich werden mich so bald wie möglich daran machen.

Ich sag Bescheid, wenn es geklappt hat.

Gruß M.B.

So, in einem Formular klappt es soweit. Aber ich möchte die Dokumente in einem Bericht haben.

Habe dort auch ein ungebundenes OLE-Feld erzeugt und folgenden Code dazu:

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)

Me.OLE1.Class = „Word.Document.8“
Me.OLE1.OLETypeAllowed = acOLELinked
Me.OLE1.SourceDoc = Me![DocPfad] & „“ & Me![DocName]
Me.OLE1.Action = acOLECreateLink

End Sub

Aber leider kommt dann der Laufzeitfehler „2793“ … kann einen Vorgang nicht starten…".
An einer Sperre im OLE-Feld kann es nicht liegen, da es die in einem Bericht nicht gibt.

So, in einem Formular klappt es soweit.

gut

Aber ich möchte die Dokumente in einem Bericht haben.

ok

Habe dort auch ein ungebundenes OLE-Feld erzeugt und folgenden
Code dazu:

Private Sub Detailbereich_Format(Cancel As Integer,
FormatCount As Integer)

Me.OLE1.Class = „Word.Document.8“
Me.OLE1.OLETypeAllowed = acOLELinked
Me.OLE1.SourceDoc = Me![DocPfad] & „“ & Me![DocName]
Me.OLE1.Action = acOLECreateLink

End Sub

Aber leider kommt dann der Laufzeitfehler „2793“ … kann
einen Vorgang nicht starten…".

wohl, weil du die benötigten Daten nicht im Bericht hast:
Me. = aktueller Bericht!!

Forms!MeinFormular.DocPfad & „“ & Forms!MeinFormular.DocName

sollte den Fehler beheben.

btw Me! mit Ausrufezeichen war bis Access 2000 richtig. Ab dann verwendet man Me. mit Punkt!

Grüße aus Rostock
Wolfgang
(Netwolf)