Formular zu Bericht

Hallo,
ich bin immernoch an der Datenbank wie in der Frage „Abfrage Zeit“.
Stehe nun vor einem neuen Problem!
Und zwar sollen Mahnschreiben automatisiert werden. Ich hab jetzt ein Formular indem ich Name und Anschrift eingeben und den Verstoß auswählen kann.
Mit einem Button soll denn aus dem Formular ein Bericht erstellt werden (das Mahnschreiben)
Jeder Vorfall soll einzeln in einem Verzeichnis als PDF abgespeichert werden

zb.
Man schreibt in dein Formular den Namen ein und wählt den Verstoß aus und klick auf den „Bericht-erstellen-Button“
Es wird den der Bericht erstellt und als PDF-File in ein Ordner gespeichert
Die Datenbank speichert unter dem Namen die Herkunft der PDF (zb. als Hyperlink)

Für ein paar Hilfen wäre ich euch sehr dankbar

schöne Grüße
Thomas

PS.: nicht wundern, ich habe die Frage auch in das Forum „office-loesung.de“ geschrieben

Hallo Thomas,

Man schreibt in dein Formular den Namen ein und wählt den
Verstoß aus und klick auf den „Bericht-erstellen-Button“
Es wird den der Bericht erstellt und als PDF-File in ein
Ordner gespeichert

ok, fangen wir mal mit den Grundlagen an, du benötigst erst mal…:
http://www.lebans.com/reporttopdf.htm
http://www.access-paradies.de/tools/ap_pdfprint.php

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,
vielen Dank für deine schnelle Hilfe!!

Gäbe es auch eine Möglichkeit die Berichte mit FreePDF umzuwandeln?
Dieses Programm verwenden wir im Betrieb sehr viel.

Würde es auch gehn, das man der DB zB. sagt er soll die Berichte einzeln unter „Nr_Name_Vorname“ speichern und das man dann die Berichte als Worddokument exportiert und manuell in PDF umwandelt.
Die DB sucht nach vorhandenen PDF’s und löscht die Berichte.

Vielen Dank im Voraus
Thomas

Hallo Thomas,

Gäbe es auch eine Möglichkeit die Berichte mit FreePDF
umzuwandeln?
Dieses Programm verwenden wir im Betrieb sehr viel.

warum probierst du es nicht einfach aus? Im Grunde ist es egal, mit welchem Programm du die Berichte umwandelst.
Da FreePDF auf Ghostscript aufsetzt, wäre z.B. eine direkte Programmierung des Programms Ghostscript möglich.

Würde es auch gehn, das man der DB zB. sagt er soll die
Berichte einzeln unter „Nr_Name_Vorname“ speichern

definiere:SPEICHERN. Wo sollen diese Berichte dann gespeichert werden? In der DB speichern? oder auf der Festplatte, was möglich wäre.

und das man dann die Berichte als Worddokument exportiert

ja, du kannst Berichte als Worddokument (immer ohne Bilder) exportieren.

und manuell in PDF umwandelt.

manuell kannst du machen was du willst :smile:

Die DB sucht nach vorhandenen PDF’s und löscht die Berichte.

das Löschen soll dann in der DB erfolgen? Da keine extra Berichte für die Namen in der DB angelegt werden können (was auch keinen Sinn machen würde) können diese in der DB auch nicht gelöscht werden.

Ein Bericht ist ein „Blick“ auf die Daten. Diesen „Blick“ kann man mit Filtern und Regeln einschränken. Das Ergebnis ist der entsprechende Bericht z.B. für einen speziellen Namen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

wie sag ich denn der Datenbank das er den einzelnen Bericht exportieren soll? Und wie sag ich FreePDF das es von Access ein Bericht bekommt welches es umwandeln muss (soll automatisch gehn)

Da FreePDF auf Ghostscript aufsetzt, wäre z.B. eine direkte
Programmierung des Programms Ghostscript möglich.

aber wie?

Würde es auch gehn, das man der DB zB. sagt er soll die
Berichte einzeln unter „Nr_Name_Vorname“ speichern
definiere:SPEICHERN. Wo sollen diese Berichte dann gespeichert
werden? In der DB speichern? oder auf der Festplatte, was
möglich wäre.

wo die DB die Berichte „zwischenlagert“ befor sie umgewandelt werden ist eigentlich egal
Wenn die Berichte in PDF fertig umgewandelt sind sollen sie in ein Ordner auf der Festplatte

und manuell in PDF umwandelt.

manuell kannst du machen was du willst :smile:

ist glaub ich doch keine gute Lösung :wink:

Die DB sucht nach vorhandenen PDF’s und löscht die Berichte.

das Löschen soll dann in der DB erfolgen? Da keine extra
Berichte für die Namen in der DB angelegt werden können (was
auch keinen Sinn machen würde) können diese in der DB auch
nicht gelöscht werden.

okey macht glaub ich auch keinen Sinn

Schöne Grüße von der Nordsee
Thomas

Hallo Thomas,

wie sag ich denn der Datenbank das er den einzelnen Bericht
exportieren soll?

nun ja, so wie immer:
DoCmd.OutputTo acOutputReport, „Bericht“, acFormatRTF, „C:\Export\Bericht.rtf“

Damit wird der Bericht als RTF - Datei exportiert. Aber das willst du ja gar nicht. Denn du willst DRUCKEN, auf einen PDF-Drucker mit dem Namen FreePDF.

Also schau dir mal die eingebaute Funktion DOCMD.Openreport an.

Und wie sag ich FreePDF das es von Access
ein Bericht bekommt welches es umwandeln muss (soll
automatisch gehn)

per DOCMD.openreport etc. pp. wird der Bericht gedruckt. Wenn du bei der Erstellung des Berichts den FreePDF-„Drucker“ angibst, wird dieser immer für den Ausdruck genommen.

FreePDF öffnet ein Fenster und fragt was nun passieren soll. Der Berichtsname wird als Vorschlag für einen Dateinamen genommen. Aber das solltest du ja alles wissen, wenn Ihr in der Firma schon so lange damit arbeitet.

Da FreePDF auf Ghostscript aufsetzt, wäre z.B. eine direkte
Programmierung des Programms Ghostscript möglich.

aber wie?

sorry, ich arbeite nicht mit dem FreePDF-Drucker. Ich rate dir mal einfach das Ghostscript-Programm + die Hilfedateien aus dem I-Net runterzuladen. Die Hilfedateien zu lesen und dann zu bestimmen, welche Parameter notwendig sind. Access kann Programme mit Parameter starten.

wo die DB die Berichte „zwischenlagert“ befor sie umgewandelt
werden ist eigentlich egal

nö, da machst du einen Denkfehler. Jeder Bericht wird zu dem Zeitpunkt wo du ihn startest generiert. Es gibt nur eine Vorlage ohne Daten, die gespeichert ist. Der fertige Bericht kann dann gedruckt, oder exportiert werden. Nur wenn man Ihn schließt, ist alles was übrig bleibt, die Vorlage.

Wenn die Berichte in PDF fertig umgewandelt sind sollen sie in
ein Ordner auf der Festplatte

nun, das kannst du ja dann in FreePDF über die Programmierung des Ghostscript bestimmen.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Thomas,

alles Mumpitz!!!

Gehe einfach auf die INet-Seite von den Leuten die FreePDF machen:
http://www.shbox.de/fpxp.htm

Dort findest du einen MenuEintrag „FreePDF XP Ressourcekit“ (rot hinterlegt).
Das Teil laedst du dir einfach runter (ist freeware).
In dem Archiv findest du die Anleitung und auch fertigen VB-Code fuer die automatische Generierung von PDF-Dateien aus Access heraus.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo
bin immer noch bei der Ausgabe von Berichten.
Wie bekomme ich es hin das Access mir jeden Bericht einzeln (also jeden Datensatz einzeln) ausgibt und exportiert

der Code müsste glaub ich so aussehen:

stDocName = „Verstoß1“
DoCmd.PrintOut = acViewPreview
'hier müsste der neuer Name hin, zb. [Name][Vorname][Datum]
PrintOut!Verstoß1.Printer = Application.Printers(„FreePDF XP“)

Vielen Dank im Voraus

Mit freundlichen Grüßen

Thomas

Hallo Thomas,

bitte stelle neue Fragen immer als neuen Thread/Posting, damit alle was davon haben :smile:

Wie bekomme ich es hin das Access mir jeden Bericht einzeln
(also jeden Datensatz einzeln) ausgibt und exportiert

der Code müsste glaub ich so aussehen:

nein, so sollte er nicht aussehen!!

stDocName = „Verstoß1“
DoCmd.PrintOut = acViewPreview
'hier müsste der neuer Name hin, zb. [Name][Vorname][Datum]
PrintOut!Verstoß1.Printer = Application.Printers(„FreePDF XP“)

DoCmd.OpenReport „Verstoß1“, acViewPreview, FilterBedingung, WhereBedingung

Schau dir mal diese Funktion genau an, dort hast du die Möglichkeit entsprechend einen Filter, oder besser eine Where - Klausel zu setzen.

Printout druckt nur ein Formular oder eine Tabelle Seitenweise aus, du willst aber einen Bericht drucken …
bzw. wie in deinem Code, vorher anzeigen!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)