Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: Carl am Dezember 17, 2017, 14:50:18

Titel: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 17, 2017, 14:50:18
Wie kann man eine Word-Datei im Bericht anzeigen zu lassen? Also beispielsweise eine zweiseitige?

Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: DF6GL am Dezember 17, 2017, 15:34:27
Hallo,

wozu, weshalb, wofür?


http://www.access-o-mania.de/forum/index.php?topic=16222.msg134288#msg134288
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 17, 2017, 16:18:11
okay, vielen Dank.

Hätte das einen Vorteil gegenüber einem OLE-Objekt, ohne den framer? Ich meine, weil es ja wirklich nur angezeigt werden soll. Ich hab mir überlegt, die erste Seite reicht auch aus.
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Lachtaube am Dezember 17, 2017, 17:25:00
Man könnte sich Word-Dokumente ja auch durchaus in Word anzeigen lassen - oder spricht etwas dagegen?
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 17, 2017, 17:25:30
Oder nochmal so: Ich habe in einem Bericht ein ungebundenes OLE-Objekt und möchte darin die Datei anzeigen, auf die das Feld [Pfad] aus der Abfrage verweist.

im Eigenschaftsblatt kann man aber keine Quellen zum Herkunftsdokument als Felder eintragen

Herkunftsdokument: [abfrage].[Pfad]

geht nicht.

Was muss man tun?

Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 17, 2017, 17:28:29
Zitat von: Lachtaube am Dezember 17, 2017, 17:25:00
Man könnte sich Word-Dokumente ja auch durchaus in Word anzeigen lassen - oder spricht etwas dagegen?

Das soll nicht sein, weil die Anwender sonst durcheinander kommen mit anderen offenen Word-Dateien, die ähnlich aussehen. Es geht immer um Berichte über Patienten und da soll man nicht aus Versehen was in den falschen File reinschreiben können.

Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: DF6GL am Dezember 18, 2017, 08:54:31
Hallo,

ist der Bericht für's Ausdrucken gedacht oder wird er in der Berichtsansicht geöffnet?


Handelt es sich (nur) um Doc(x)-Dateien oder sind das evtl. PDF-Dateien?

Ansonsten hast Du den Link nicht genau genug gelesen.

ZitatWas muss man tun?

das DSOFramer-OCX verwenden!
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 20, 2017, 07:21:57
Vielen Dank für Deine Antwort.

Ich kann in der betreffenden Umgebung die DSOFramer_moss.ocx nicht registrieren und muss eine andere Lösung suchen.

Mit den folgenden Anforderungen:
* Bericht oder Formular
* es geht ausschließlich um word.docx-Dokumente
* die erste Seite reicht
* es soll nichts editiert werden
* nur anzeigen
* es soll nicht druckbar sein (das drucken soll über einen Button erfolgen, der die Originaldatei druckt)

Der Link zur Datei wird in einer Abfrage berechnet und befindet sich im Feld [Pfad_zur_datei]

Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: DF6GL am Dezember 20, 2017, 09:34:10
Hallo,

Du musst das OCX richtig registrieren:


Führe die Eingabeaufforderung (CMD) als Administrator aus.

Gebe folgenden Befehl ein:

C:\Windows\Syswow64\Regsvr32 C:\DeinVerzeichnis\DSOFramer_moss.ocx

"DeinVerzeichnis" ist der Ordner, in dem sich die ocx-Datei befindet.

Siehe Anhang.
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Lachtaube am Dezember 20, 2017, 09:44:19
... und das Original gibt's noch unter: https://github.com/shines77/DsoFramer

PS: das Control wäre dann im Formular zu verwenden, wozu es auch gedacht ist.

Genauso gut könnte man auch im Formular einem ungebundenen Objektrahmen ein Word-Dokument unterjubeln - in einem Bericht dürfte das außerhalb des Entwurfsmodus nicht möglich sein.
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: ebs17 am Dezember 20, 2017, 11:49:35
Einige Abseitsüberlegungen, die aber Einfluss auf die Gesamtumsetzung der Aufgabe mit entsprecheenden Strukturen und Maßnamen erfordern.

- In eine Datei schaut man oft hinein, um sich den Inhalt grob zu erschließen. Verwendet man einen sprechenden Namen für die Datei, kann sich die explizite Anzeige erübrigen.

- Wenn die Dateien nicht nur durch die DB-Anwendung verwaltet, sondern z.B. auch erzeugt werden, würde man folgerichtig deren Daten in der Datenbank vorhalten und dort mit den üblichen Mitteln anzeigen können.
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 20, 2017, 15:33:24
Ich habe keine Adminrechte und es geht hier in Access nur, was an Bordmitteln verfügbar ist.

Zitat von: Lachtaube am Dezember 20, 2017, 09:44:19
Genauso gut könnte man auch im Formular einem ungebundenen Objektrahmen ein Word-Dokument unterjubeln - in einem Bericht dürfte das außerhalb des Entwurfsmodus nicht möglich sein.

Könntest Du bitte mal sagen, wie ich in einem ungebundenen Objektrahmen in einem Formular ein Dokument anzeigen lasse, dessen Pfad im Feld [PfadzurDatei] liegt?

Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: DF6GL am Dezember 20, 2017, 15:48:13
Hallo,


ZitatIch habe keine Adminrechte

Du sollst ja  das auch  nur als Admin ausführen.

Tippe im Cortana-Suchfeld "cmd" ein, wobei danach "Eingabeaufforderung" erscheint. Darauf Rechtsklick und auf "Als Administrator ausführen" klicken.
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Lachtaube am Dezember 20, 2017, 16:21:17
In einem Formular sollte das in etwa so möglich sein.Private Sub ShowDocxAsLink(DeinPadZumDocx As String)

   With Me.DeinUngebundenerOLERahmen

      ' ggf. aktivieren
      .Enabled = True

      ' ggf. entsperren
      .Locked = False

      .OLETypeAllowed = acOLELinked

      ' OLE server angeben
      .Class = "Word.Document"

      ' Dateipfad angeben
      .SourceDoc = DeinPadZumDocx

      ' Objekt erstellen
      .Action = acOLECreateLink

      'sperren
      .Locked = True

      'deaktivieren
      .Enabled = False

   End With

End Sub
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 26, 2017, 17:25:12
I habs noch nicht hin gekriegt.

Also beispielsweise:

Mein ungebundenes Objektfeld heißt "OLEInstruktionsdatei" und das Feld, das den Pfad enthält, heißt [PfadInstruktion]

Wenn ich das in die VBA-Seite kopiere, tut sich ganrichts, nicht mal ne Fehlermeldung. Was habe ich falsch gemacht?


Private Sub ShowDocxAsLink(PfadInstruktion As String)
   
   With Me.OLEInstruktionsdatei

      ' ggf. aktivieren
      .Enabled = True

      ' ggf. entsperren
      .Locked = False

      .OLETypeAllowed = acOLELinked

      ' OLE server angeben
      .Class = "Word.Document"

      ' Dateipfad angeben
      .SourceDoc = [PfadInstruktion]

      ' Objekt erstellen
      .Action = acOLECreateLink

      'sperren
      .Locked = True

      'deaktivieren
      .Enabled = False
   End With
End Sub


Und: kann man nicht einfach das Feld in der Option "Herkunftsdokument" im Eigenschaftsblatt angeben, wie in beiliegenden Bild?

vielen Dank für die Antwort
Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Lachtaube am Dezember 28, 2017, 12:09:13
Es steht Dir frei ein Zip-Archiv mit einigen wenigen Worddokumenten und einer BeispielDB mit entsprechendem Formular hochzuladen - aus dem Bild-Anhang kann ich jedoch keine Lösung ableiten geschweige denn feststellen, wo der Hund begraben liegt.
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 28, 2017, 20:29:56
Ich versuche Deinen VBA zu verstehen und sehe gerade, dass es ohnehin nicht ginge, weil sich beispielsweise OLE server verändern könnten. Ich kann hier nur so programmieren, dass es keinen größeren Wartungsaufwand erzeugt und auch keine anderen Rechte gebraucht werden, wenn Links nicht mehr gehen. Wahrscheinlich muss ich ne andere Architektur nehmen.

Ich habe aber nochmal eine konkretere Frage:

Schau bitte nochmal genau auf das Bild. Kann man an die Stelle mit dem roten Pfeil nicht statt eines konkreten Links auf ein Dokument ein Feld eintragen, aus dem der Link für das anzuzeigende Dokument entnommen wird? Das wäre doch ne gute Lösung.

Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Lachtaube am Dezember 28, 2017, 21:40:24
AFAIK geht das nicht. Andererseits verstehe ich nicht, warum mein Code nicht zum Erfolg führt. :-\
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: bahasu am Dezember 29, 2017, 08:16:45
Hallo,

im Formular funktioniert die Anzeige mit der oben beschriebenen Methode einwandfrei. :)
Allerdings habe ich im Internet bislang keine Möglichkeit gefunden, ein ungebundenes OLE-Feld im Report anzuzeigen. :(

Eine "gute" Zusammenfassung liefert:
https://www.experts-exchange.com/questions/23377679/How-to-Change-SourceDoc-for-Unbound-Object-Control-in-MS-Access-2003-Report.html
"> I thought that it was best practice to avoid OLE fields in tables

Absolutely! OLE is a terrible technology when applied to databases. I certainly hope that you maintain your file paths externally, and only create the OLE fields on the fly (in a temporary table?) when needed for reporting."


Dort wird ein Verfahren vorgeschlagen, ein gebundenes OLE-Feld zu verwenden, dass z.B. im Formular via
Private Sub Form_Current()
    Me.Feld_ole.SourceDoc = Me.Feld1
    Me.Feld_ole.Action = acOLECreateEmbed
End Sub

gefüllt wird, um es dann im Bericht einfach ohne jeglichen VBA-Anteil zu verwenden.
Das wird allerdings dazu führen, dass die Datenbank sich aufblähen wird.  :'(

Da auch ich an diesem Thema interessiert bin, bin ich für jeden Vorschlag dankbar, wie ole in den Griff zu bekommen ist.

Harald

Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Carl am Dezember 29, 2017, 14:59:58
Lachtaube, kannst Du bitte nochmal schauen auf Post #14? Ist da alles richtig eingetragen? [PfadInstruktion] ist mein Feld mit dem Link.

Wo muss man denn den code einfügen, unter "beim Laden"?

Was bedeutet ShowDocxAsLink? Ist das ein von Dir selbst vergebener Name?

Carl
Titel: Re: Word Datei im Bericht anzeigen
Beitrag von: Lachtaube am Dezember 29, 2017, 17:45:33
Einem Programmierer ist es freigestellt, eigene Methoden zu erstellen (ich hätte mir z. Bsp. auch den deutchen Namen ZeigeDokumentAlsVerknuepfung einfallen lassen können, oder die Methode gleichwertig HauMichBlau taufen können) - nur wenn man diese Methode(n) dann nirgendwo aufruft, passiert erwartmäßig natürlich auch nichts.

Ohne Grundlagenkenntnisse zu VBA kommen dann Fragen wie Was bedeutet XYZ auf. Ich empfehle Dir deshalb, entweder Literatur anzuschaffen oder zumindest ein Tutorium wie z. Bsp. Das Programmieren mit der Programmiersprache VBA (VBA-Kurs) – Die absoluten Grundlagen (http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/vba-kurs) (davon lassen sich mehrere gleichwertige im WWW finden) durchzuarbeiten.

Unabhängig davon kann man in der Access OL-Hilfe nachlesen, welche Ereignisse wann ausgelöst werden. Das Beim Laden Ereignis eines Formulars wäre recht statisch, weil es halt eben nur einmal beim Laden des Formulars eintritt.