Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Zielverzeichnis von Word-Dateien aus einer bestimmten Vorlage

Begonnen von gromax, Oktober 27, 2014, 01:03:55

⏪ vorheriges - nächstes ⏩

gromax

Hallo in die Runde,

ich habe mit großer Unterstützung im Access-Forum eine Datenbank erstellen können, von der aus ich ein WORD-Dokument aus einer Vorlage (Brief_Vorlage SoS.dotm) öffne und mit Daten befülle.
Die Anwender sollen diese Datei (Dokument1) unter einem bestimmten Namen (Nachname, Vorname XY) in einem bestimmten Ordner (Pfad\BESTAND\ speichern können; für 'XY' wäre es toll, wenn es eine automatische Zählfunktion gäbe, die also "Nachname, Vorname 01.docx" - "Nachname, Vorname 02.docx" - "Nachname, Vorname 03.docx" - ... generiert!
Letzteres wird sicherlich sehr schwierig, vielleicht auch zu aufwändig sein - es wäre aber toll, wenn Ihr mir bei dem Dateinamen und dem Verzeichnispfad helfen könntet!

Übrigens sind die Daten zu [Nachname] und [Vorname] in einer Tabelle [tbl_SCHUELER] der Access-Datenbank gespeichert.

Vorab vielen Dank
gromax

MaggieMay

Hallo gromax,
ZitatDie Anwender sollen diese Datei (Dokument1) unter einem bestimmten Namen (Nachname, Vorname XY) in einem bestimmten Ordner (Pfad\BESTAND\ speichern können;
soll das automatisch passieren oder was wäre der Auslöser für diese Aktion?

Du könntest den Zugriffspfad in einer internen Tabelle speichern, das wäre leichter zu pflegen.
Der Dateiname lässt sich vermutlich aus den exportierten Daten generieren?
Mit der Dir-Funktion kannst du in einer Schleife prüfen, ob die Datei bereits existiert und dabei
den Zähler hochzählen bis es passt.
Wobei genau brauchst du da Hilfe?
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

toll, dass Du Dich wieder gemeldet hast - danke!
Zur Ausgangssituation:
Aus Access heraus starte ich eine WORD-Vorlage und übertrage die Daten aus einem Access-Formular. Access findet die Position in WORD über Textmarken; anfänglich waren dies offene Textmarken und ich konnte in der Folge in WORD nicht mehr darauf zugreifen.
Mit den übergebenen Access-Daten wollte ich den Dateinamen der erstellten Bescheide ([SuS_Nachname] &", " & [SuS_Vorname] & [Zähler]) generieren; zugleich sollte beim sich öffnenden Speicherdialog dieser Word-Dokumente (noch Standard: "Dokument1") der Speicherort sofort angesprungen werden. Es existiert nämlich für jeden Schüler ein Ordner (Syntax: C:\Users\gromax\Documents\ÜbungAccess\SoS_DBSSA\Bestand\Bengele, Berthold _ 24.07.2005) in dem sollte dann das WORD-Dokument (Bsp. "Bengele, Berthold 04 Bescheid.docx" oder "Bengele, Berthold 07 Gutachten.docx") gespeichert werden können.
Nachdem ich in den Büchern (Hölscher, Fräßdorf) über die Textmarken gelesen habe, habe ich alles mit "geschlossenen Textmarken" versucht, habe deren Position über das Range-Objekt "festgehalten", doch so richtig klappen tut dies auch nicht; nachmals werden die Textmarken nicht wieder gesetzt, wie es die Autoren beschrieben haben.
Kann ich denn von WORD aus auf meine Access-Tabellen oder auch -Formulare zugreifen und dort die entsprechend Daten zur Gestaltung des Dateinamens, aber auch zur Ansteuerung der Schüler-Ordner herauslesen?
Oder sollte ich besser in WORD auf die dort eingepflegten Daten zugreifen?

Ich bin mal wieder rat- und ideenlos?!

Viele Grüße
gromax

MaggieMay

#3
Hallo,
Zitatzugleich sollte beim sich öffnenden Speicherdialog dieser Word-Dokumente (noch Standard: "Dokument1") der Speicherort sofort angesprungen werden.
wozu brauchst du einen Dateidialog, wenn du doch genau weißt, wohin du die Datei speichern willst?

Auch die Sache mit den Textmarken verstehe ich nicht ganz. Wozu müssen die wiederverwendbar sein? Was soll denn alles in das Word-Dokument übertragen werden?

Natürlich kannst du auch aus Word heraus auf Access zugreifen, den bisherigen Ansatz halte ich jedoch für sinnvoller. Zumindest dürftest du hier im Acccess-Forum an der richtigen Adresse mit diesbezüglichen Fragen sein. ;)

Dein bisheriger Code oder auch der Upload einer Beispiel-DB könnte dich sicher schneller zum Ziel führen.
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

in der beiliegenden Anlage habe ich Dir den Code, aber auch die visuelle Abbildung meines Anliegens versucht darzustellen.
Die DB hat mittlerweile eine Größe von über 7,5 MB, so dass ich diese gar nicht so abspecken kann, dass sie gar als .zip-Datei auf die Kleinheit von 300 KB schrumpft.

Danke vorab
gromax

MaggieMay

#5
Hallo,
Zitat von: gromax am Oktober 29, 2014, 22:31:07in der beiliegenden Anlage habe ich Dir den Code, aber auch die visuelle Abbildung meines Anliegens versucht darzustellen.
den Code habe ich mir nicht vollständig angesehen, da ich geich zu Anfang einen entscheidenden Fehler entdeckt habe:Set rngVorname = [color=red]ActiveDocument[/color].Bookmarks("B_SVorname").RangeSo kannst du nicht auf Word-Elemente zugreifen, das geht nur über die diesbezüglich deklarierten Objekte, bspw. so:
Set rngVorname = Word.ActiveDocument.Bookmarks("B_SVorname").Range
ZitatDie DB hat mittlerweile eine Größe von über 7,5 MB, so dass ich diese gar nicht so abspecken kann, dass sie gar als .zip-Datei auf die Kleinheit von 300 KB schrumpft.
Unter einer Beispiel-DB versteht man eine DB, die auf ein Minimum der zur Nachstellung eines Problems benötigten Objekte reduziert wurde. Ebenso sollten die Tabellen auf ein notwendiges Maß an (selbstverständlich anonymisierten) Daten reduziert werden.
Da sollte man eigentlich leicht auf unter 300 KB in gezippter Form kommen. Andernfalls könnte evtl. die Entfernung integrierter Grafiken (und anschließende Komprimierung der DB!!) helfen.
Freundliche Grüße
MaggieMay

gromax

Hallo MaggieMay,

Dein Hinweis mit dem "Präfix" Word. war goldrichtig! Die DB ist nun fertig - wenn eine DB überhaupt ganz fertig ist?!!! Aber ich kann nun alles, was ich mir vorgenommen habe umsetzen; jetzt bin ich auf den Praxistest gespannt.
Du und auch DF6GL - Ihr habt einen großen Anteil daran, dass ich ans Ziel gekommen bin; dafür sage ich ganz aufrichtig "Danke"! - Auch im Namen meiner Kollegen, die ja schließlich damit arbeiten sollen! Klasse - ich freue mich!
Die Access-DB werde ich in eine Frontend- und Backend-Datei teilen, so dass die Kollegen auch gleichzeitig daran arbeiten können; kommen da noch Überraschungen auf mich zu? Kannst Du dazu allgemeine Informationen ansprechen?
Wenn ja, bin ich immer ein dankbarer Abnehmer.

Ansonsten wünsche ich Dir alles Gute verbunden mit dem Respekt vor Deiner Kompetenz. Es war beeindruckend, in welcher Form Du Dich in meine Problemlagen eingelesen hast und diese dann auf den Punkt lösen konntest!

Mach's gut!
gromax

MaggieMay

Hallo gromax,
ZitatDie Access-DB werde ich in eine Frontend- und Backend-Datei teilen
du solltest dabei von vornherein daran denken, dass sich die Zugriffspfade ändern könnten und dass die Tabellen gelegentlich neu eingebunden werden müssen.

Aber auch hierzu gibt es bereits diverse Lösungen, hilfreiches Stichwort könnte "RefreshLinks" sein.
Freundliche Grüße
MaggieMay