Liebe Community!
Die Aufgabe einen Bericht von einem aktuellen Datensatz zu erstellen beschäftigt mich nun schon seit einigen Tagen.
Ich möchte aus einem Formular mit 2 Unterformularen einen Bericht vom aktuellen Datensatz erstellen. Mein Problem ist nun dass bei dem von Access erstellten Bericht dieser noch weiter formatiert und mit individuellem Text ergänzt werden soll.
Bei der Variante Word - Serienbrief scheitert es daran dass ich da nicht den Inhalt der Daten in den Unterformularen darstellen kann - oder gäbs da eine Lösung?
Bei der Variante Access - Bericht kann ich ja im Nachhinein nichts mehr formatieren und ergänzen.
Könntet ihr mir da bitte behilflich sein?
lg Harry
Variante Word - Serienbrief
Denkbar wäre folgendes: Den Dateninhalt jedes Unterformulars fasst Du per SQLListe (https://dbwiki.net/wiki/VBA_Tipp:_Liste_per_SQL_aufbauen) o.ä. zu einem String zusammen und legst diesen in ein zusätzliches Seriendruckfeld.
Da sollten die Inhalte aber so sein, dass eine vernünftige Darstellung z.B. über Tabstops realisierbar ist.
Variante Word-Einzeldokumente in Schleife
Hier kannst Du Dir (nach Anmeldung) aus folgender Demo einige Gedanken entnehmen: Demo-Datenbank – Wordtabelle aus Access füllen (https://www.ms-office-forum.net/forum/showthread.php?t=221556)
Hallo Eberhard
Danke für den Tipp, an die Demo-Datenbank komm ich aber leider nicht ran. Obwohl ich registriert und angemeldet bin.
lg Harry
Im beigefügten Code wird ein Recordset mittels ConvertToTable in eine Wordtabelle umgeformt, diese Wordtabelle wird dann an eine Textmarke angefügt.
Das Recordset sollte den Inhalt des Unterformulars enthalten.
Hallo Eberhard
danke erstmal für die Hilfe. Auf den ersten Blick bin ich damit etwas überfordert. Aber ich werde das einmal in Ruhe ausprobieren.
lg Harry
Hi Harry
Habe mit Laienwissen mit VBA etwas ähnliches erstellt, eine DB wo ich sicher 8 verschiedene Tabellen mit Bezug zu einer einzelnen ID in einem Word Dokument erzeuge. Habe den Code anhand von einem Beispiel aus einem sehr hilfreichen Buch namens "Access und Office" erstellt. In diesem Lösungsansatz erstellst du wie auch bei Eberhard alles aus Access heraus: Das Word Dokument, die Tabelle mit der gewünschten Anzahl Spalten und Breite, das Befüllen der Tabelle und auch den gewünscht eine Totalzeile. Falls du nicht weiter kommst kann ich dir sicher ein paar Tipps geben.
Gruss Micharius
Hallo Micharius
das klingt interessant. Kannst du mir mehr über das Buch sagen - ich finde es nirgends. Titel und Verlag vielleicht?
lg Harry
Hast du mal ausprobiert ein Formular mit deinen Daten auf DIN-A4 Version mit einem beschreibaren Feld zu erstellen? Das Formular kann man auch ausdrucken.
Vermutlich sind wir uns einig, dass man über eine Tabelle im Worddokument Daten eines Unterformulars wunderbar strukturiert darstellen kann. Die Tabelle kann man nachfolgend auch noch formatieren und dem Stil des Dokumentes anpassen.
Im Anhang habe ich ein Dokument hinterlegt, dass sehr anschaulich und ausführlich auf Wordtabellen unter VBA eingeht. Dieses Dokument ist ein winziger Auszug aus der legendären Word-FAQ von Smaug, die leider vor einigen Jahren aus dem Internet zurückgezogen wurde und nur noch in Spuren (Fremdrücksicherungen) existiert.
Damit könntest Du dann die Tabelle auch Schritt für Schritt aufbauen und füllen. Die oben offerierte ConvertToTable- Methode macht das auf einen Rutsch.
Wegen des Buches: Access und Office (https://shop.minhorst.com/buecher/300/access-und-office)
Hallo zusammen
Merci Eberhard für den Buchlink, hätte den glaub auch nicht mehr gefunden.
@Harry, das Kapitel mit dem beschriebenen Word ist das Kapitel 11 "Word-Rechnungen".
Was ich mit der wdRange.ConvertToTable Methode nicht geschafft habe war, ein eigenes Layout für die Tabelle auszuwählen, also diejenigen, die man als "Tabellenformatvorlagen" gerne schön CD-mässig hinterlegt hat. Die lassen sich mit der "Buchmethode" ganz schön einbauen. Features wie Ergebniszeile an aus oder Stiländerungen lassen sich dann super schnell umsetzen.
Was ich auch noch gemacht habe, ist das automatische Befüllen von den Dokumenteneigenschaften des Word Dokuments (Titel, Thema, Firma, Kommentar) und das Einfügen von "Benutzerdefinierten Dokumenteneigenschaften", welche genial sind für das Einfügen von variablen Werten, die man mehrere Male in einem Dokument braucht. (siehe https://blog.stefan-macke.com/2016/09/20/variablen-dokumenteigenschaften-fuer-texte-in-microsoft-word-verwenden/ (https://blog.stefan-macke.com/2016/09/20/variablen-dokumenteigenschaften-fuer-texte-in-microsoft-word-verwenden/)
Guck doch mal wie du weiterkommst. Bin grade im Urlaub, aber wenn du nicht weiterkommst, kann ich mir mal ab Montag in einer Woche mal 'ne Stunde Zeit nehmen und meine DB in eine Demo umwandeln, bei denen diese Features ausprobiert werden können.....
Lieber Gruss und viel Erfolg,
Micharius
Hallo Leute,
ich habe mir jetzt mal das Buch bestellt. Sollte in den nächsten Tagen ankommen.
Ich habe ja bereits einige Datenbanken erstellt. Und jedes mal wenn ich dann etwas VBA benötigte hab ich mir irgendwo die nötigen "Vorlagen" gesucht und für meine Zwecke so recht und schlecht umgebastelt.
Hättet ihr vielleicht einen Tip für mich wie ich VBA-Programmierung von Null an lernen könnte? Ich hab schon einige Bücher, aber scheinbar fehlt mir einfach das Grundwissen. Ich würde das so gerne lernen - nicht nur für dieses Projekt. ;)
LG und großen Dank bisher
Harry
Servus Harry!
In Sachen VBA haben mir die Videos vom Steve Bishop geholfen: https://www.youtube.com/playlist?list=PLYMOUCVo86jEeMMdaaq03jQ_t9nFV737s (auf englisch)
Als ich Programmier / VBA-Neuling war habe ich in einem bestehenden oder ehemaligen Projekt gewisse Aufgabenstellung herausgepickt und diese mal komplett via VBA geschrieben. Vieles lässt sich über VBA super automatisieren, benötigt aber manchmal einbisschen strukturelle Änderungen.
Drück dir die Daumen!
Gruß, Emmo
Hallo Leute!
Ich habe jetzt ewig auf das Buch gewartet (5 Wochen) aber jetzt hab ichs und es hat mir auch schon ein schönes Stück weiter geholfen.
Ich bin jetzt soweit dass ich aus meinem Acces Formular mittels Schaltfläche eine vorbereitete Word-Vorlage öffnen und mit den jeweiligen Daten die Textmarken in Word befüllen kann.
Wenn ich jedoch auf Daten aus einer verknüpften Tabelle oder einem Unterformular zugreifen will steh ich wieder an.
Problem:
Ich befülle die Textmarke in Word mit
Set objBookmark = objDocument.Bookmarks("ITSachbearbeiter")
objBookmark.Range = Me![IT-Sachbearbeiter_ID]
Da das Feld "IT-Sachbearbeiter_ID" mit der Tabelle "tbl_IT-Sachbearbeiter" verknüpft ist bekomme ich als Ergebnis nur die Zahl angezeigt. Und ich komm einfach nicht drauf wie ich das ändern könnte. (Schäm)
lg Harry
Hallo,
erstelle eine Abfrage die Du dann für die Datensatzquelle des Unterformulars verwendest.
In der Abfrage kannst ja ein "ITSachberater" erstellen und diese der Textmarke übergeben.
HTH
Hallo
Danke erstmal für die rasche Antwort.
Aber ich komm da nicht zurecht.
Also ich befinde mich in meinem Eingabeformular. Da gibts eine Schaltfläche und durch klick darauf wird eine Word-Vorlage geladen und die entsprechenden Textmarken befüllt.
Da das Feld "IT-Sachbearbeiter" also der Name aus einer verknüpften Tabelle stammt erhalte ich im Textfeld nur die ID des Sachbearbeiters.
Ich verstehe einfach nicht wie ich es schaffe dass mir der Name und nicht die ID übernommen wird.
Ob der Wert jetzt aus einer Abfrage oder Tabelle übernommen wird ist doch egal oder??? Ich finde nur den Weg dorthin nicht.....
lg Harry
Hallo,
ohne jetzt den ganzen Thread studiert zu haben, folgender Hinweis:
Wenn es sich beim Feld "IT-Sachbearbeiter_ID" um ein Kombifeld handelt, führt
objBookmark.Range = Me![IT-Sachbearbeiter_ID].Column(1)
zum Ziel, falls der Sachbearbeiter-Name in der zweiten Spalte (1) des Kombi-Listenfeldes steht.
Ansonsten muss der Name entweder durch eine verknüpfende Abfrage über die beteiligten Tabellen oder mittels Dlookup-Domänenfunktion ausgelesen werden.
Allerherzlichsten Dank
.Column(3)
das war die Lösung.
Jetzt hab ich auch den Vorschlag von silentwolf mit der Abfrage verstanden ....
lg Harry
Hallo Community
ich habs endlich geschafft und das befüllen meiner Word-Vorlage funktioniert so wie ich es mir vorgestellt hatte.
Ich möchte mich noch einmal bei allen recht herzlich für die Hilfe bedanken.
lg Harry