Neuigkeiten:

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

Mobiles Hauptmenü

Formular automatisch als PDF drucken und speichern

Begonnen von kingwambi, Juli 20, 2013, 17:00:03

⏪ vorheriges - nächstes ⏩

kingwambi

Ich habe eine Datenbank mit ca 10 verschiedenen Eingabeformularen (verschiedene Geräte erfordern andere Eingaben). Da ich diese nicht nochmal als Bericht detailgetreu nachbauen möchte - meine Frage zu den vorhandenen Formularen(sollte dies ev doch nicht möglich sein, die selbe Frage zu den Berichten). Um die es mir geht - die sind auf Abfragen bezogen - zb Kundennr 10009 hat von 10.7.2013 bis 20.7.2013 20 Geräte geprüft bekommen. Nun erhalte ich 20 Datensätze im Formular. Ich muss nun umständlich jedes Formular als PDF drucken und mit Namen versehen speichern. Dies sollte automatisiert funktionieren. Am besten wäre es wenn ich angeben könnte, dass sich der Dateiname speziell zusammensetzt. Zb 023_<Datum>_<KdNr>_1215. Am allerbesten, wenn er sich anhand des Gerätetyps auch gleich das richtige Formular sucht. Ich hoffe ihr habt eine Idee hierfür. Anbei ein Screenshot eines Formulars.

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

ich glaube, da liegt mit dem DB-Auifbau Einiges im Argen. Normalerweise ist für eine Aufgabe nur ein Formular (und auch ur ein Bericht)  von Nöten, nicht aber für jede Datenkonstellation ein eigenes oder eigener...


Auch wenn ein Formular (-Recordset) mehrere Datensätze enthält, werden beim Ausdruck des anzeigenden (Einzelform) alle Datensätze ausgegeben. Ein separates Ablegen eines einzelnen DS ist aber mit dieser Methode nicht möglich.  (Ein Ausdruck aller selektierten DS = ein Druckjob).  Es könnte allerdings jeder DS einzeln mittels VBA-Schleife über einen Recordset gedruckt werden, wobei in jedem Schleifendurchlauf ein entspr. passender Dateiname gerneriert und angeben wird.

Zitatwenn er sich anhand des Gerätetyps auch gleich das richtige Formular sucht.


Das ist, wie gesagt, bei einem passend gewählten Tabellenaufbau (-->Normalisierung) nicht nötig.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

kingwambi

Hallo - vom Aufbau der Datenbank denke ich, dass es im großen und ganzen passt (ich habe eure Anweisungen befolgt - deine Nachricht zur Benamung habe ich erst gesehen, als ich den Tipp von "MzKlMu" schon erledigt hatte) - http://www.access-o-mania.de/forum/index.php?topic=17654.new;topicseen#new.
Es gibt für jeden Gerätetyp ein eigenes Eingabeformular, da jeder Gerätetyp eigene Prüfschritte nach sich zieht, welche Schritt für Schritt abgearbeitet werden müssen (bis auf Adressen, Seriennr usw). Bei einem einzigen Formular hätte ich anstatt ~50 Prüfschritten ~500 Prüfschritte drauf - ausgehend von 10 versch Formularen. Dies würde extrem unübersichtlich. Ausserdem dürfen nur die für das Geräte vorgeschriebenen und auch durchgeführten Prüfschritte auf dem gesp. Protokoll aufscheinen. Oder denke ich hier falsch? Mit VBA bin ich gar nicht bewandert - wie könnte ich dies umsetzen?

[Anhang gelöscht durch Administrator]

DF6GL

#3
Hallo,

Zitatvom Aufbau der Datenbank denke ich, dass es im großen und ganzen passt

auch wenn Du einige(!) der Vorschläge umgesetzt hast, ist die Normalisierung (essentiell!!) nicht vollständig.  
Die Tabelle tbl_Prüfprotokoll ist nicht normalisiert, bzw. überhaupt überflüssig (siehe oben).  Die tbl_Ja_Nein kann auch eliminiert werden, desgleichen (vermutlich) auch  tbl_Prüfungsergebnis  (Was soll da drinstehen?). Der Prüfungsergebnis-Wert kann als "Berechnung" angesehen werden, die die erfassten Prüfschritte (siehe weiter unten)  "auswertert"..

ZitatBei einem einzigen Formular hätte ich anstatt ~50 Prüfschritten ~500 Prüfschritte drauf - ausgehend von 10 versch Formularen.

Grausam!  :o



ZitatDies würde extrem unübersichtlich.
Nicht nur dass, es wäre falsch/nicht behandelbar..


ZitatAusserdem dürfen nur die für das Geräte vorgeschriebenen und auch durchgeführten Prüfschritte auf dem gesp. Protokoll aufscheinen.
Ja,. so sollte das sein.... Deswegen eine Tabelle als "Template"  tbl_Prüfschritte  , in der die pro GeräteTyp nötigen Prüfschritte vorgehalten werden,  und eine Tabelle  tbl_GerätePrüfschritte, in der die akt. durchgeführten Prüfungen eines Gerätes erfasst werden.  


ZitatOder denke ich hier falsch?

Ja.. siehe u. st. Links 1 und 1a..



Was sind denn das für Prüfungen?  >Wiederkehrende VDE-(Sicherheits-)Prüfungen  an Messmitteln im Produktionseinsatz oder EMV-Messungen an Produktionsgeäten?

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MzKlMu

Hallo,
und hier noch ein Zitat von mir aus dem anderen Thema:
ZitatDie Felder Rast1 OK, Rast 2 OK halte ich auch für den falschen Ansatz. Hier fehlt noch eine weitere Tabelle, oder gar zwei.
Was bedeutet denn Rast1 usw. ?
Leider gab es hierauf keine Reaktion.
Gruß Klaus

kingwambi

#5
Hallo

die Tabelle Ja_Nein enthält die Werte Ja, Nein, nicht vorhanden (normalerweise verwende ich Ja/Nein als Optionsfeld, aber wegen dem nicht vorhanden habe ich diese Tabelle erstellt.

die tbl_Prüfungsergebnis enthält die Werte bestanden, nicht bestanden - ev in Zukunft noch mehr tlw bestanden oÄ

zu den Rasterungen - es gibt Geräte welche eine Rasterung aufweisen. Dies sind Literwerte. Und zu jedem Literwert gibt es das Optionsfeld ob dies OK ist. Man sieht dies schön im Formular, dass unter der Literanzahl das Optionsfeld steht in dem die positive Überprüfung pro Feld vermerkt wird.

Was ich herauslese ist, ich sollte noch eine Tabelle hinzufügen, welche die Prüfschritte pro Gerät definiert. Die Tabelle tbl_Prüfprotokoll ist nun schon die von dir beschriebene Tabelle tbl_GerätePrüfschritte in der dann die pro Gerät durchgeführten Prüfungen erfasst werden (die Prüfschritte müsste ich löschen).

Dass meine Umsetzung besser umzusetzten gewesen wäre ist mir klar. Ich würde beim nächsten Mal ganz anders an die Sache herangehen. Jedoch ist meine Frage - ist der Fehler, dass ich tbl_GerätePrüfschritte und tbl_Prüfschritte in der derzeit vorhandenen tbl_Prüfprotokoll zusammengefasst habe so schlimm, dass irgendwann gravierende Probleme auftreten könnten? Es funktioniert dzt alles perfekt - und das ganze nochmals über den Haufen werfen - ist dies wirklich notwendig? Auch wenn ich die Tabellen aufteile habe ich noch immer 10 verschiedene Formulare, welche als PDF gespeichert werden müssen.

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

Zitatist der Fehler, dass ich tbl_GerätePrüfschritte und tbl_Prüfschritte in der derzeit vorhandenen tbl_Prüfprotokoll zusammengefasst habe so schlimm, dass irgendwann gravierende Probleme auftreten könnten?


Gravierend  ist relativ...  Wenn Du meinst, unausweichliche Schwierigkeiten handeln zu können, dann belass es dabei...  Dann sind ja auch die Menge der Formulare/berichte kein Hinderniss.


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

kingwambi

Hallo - ich hoffe dich mit meiner Frage dies zu belassen nicht verärgert zu haben. Natürlich könnte ich keine unausweichlichen Schwierigkeiten handeln - darum auch die Frage ob diese aufgrunddessen auftreten könnten - wäre dies wahrscheinlich dann müsste ich nochmals anfagen. Wegen einem Schönheitsfehler würde ich mir das nicht antun - auch darum, da sich an der Anzahl der Formulare nichts ändern würde.

Zur ursprünglichen Frage - würdest du mir bei meinem autom. PDF Druck / Speicher Problem behilflich sein? Dzt gibt es nur ein Formular - in Folge dann mehr. Wann ist es sinnvoll sich dies vorzunehmen - jetzt schon oder wenn alles fertig ist?

DF6GL

#8
Hallo,

na ja, ich bin nicht verärgert, aber es wird Dich später irgendwann ärgen..   8)

Zitatda sich an der Anzahl der Formulare nichts ändern würde.

Damit gehe ich nicht konform...




Zitat

Wann ist es sinnvoll sich dies vorzunehmen - jetzt schon oder wenn alles fertig ist?


Deckst Du denn auch schon das Dach, bevor die Hausmauern stehen?   8)


Jedes Formular kann mit z. B. Docmd.Printout (über einen PDF-Drucker als PDF-Datei) gedruckt werden, oder (je nach Access-Verison) mit Docmd.Outputto  in eine PDF-Datei konvertiert werden.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

kingwambi

Hallo

es lässt mir aber trotzdem keine Ruhe. Sollte es so aussehen? Wenn wider erwarten ja, wie könnte ich nun mit einem Formular auskommen ???

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
die Tabelle Geräte_Pruefschritte ist falsch. Je Gerät und Prüfschritt ein Datensatz.
Siehe Bild:


[Anhang gelöscht durch Administrator]
Gruß Klaus

kingwambi

Also so - und wie könnte ich nun mit einem Formular auskommen? Hier steh ich komplett auf der Leitung? Das Layout ist ja immer kpl anders - ich hab ja auch verschiedene Texte auf den Forumularen (zb "Durchflussmessung sämtlicher Rasterungen in L/min <Wert>") beim nächsten fehlt dies gänzlich.

[Anhang gelöscht durch Administrator]

MzKlMu

Hallo,
Du denkst falsch. Ein solches Feld "Durchflussmessung sämtlicher Rasterungen in L/min)" darf es in einer DB gar nicht geben. Das ist ja ein Prüfschritt und gehört demzufolge als Feldinhalt in die Tabelle mit den Prüfschritten und ist dann über die Prüfschrittzuordnung dem Gerät zugeordnet.

Eine normalisierte DB ist so aufzubauen, dass die Feldnamen eigentlich keine Rolle spielen. Das heißt, Häkchenfelder die Prüfschritte abhaken kann und darf es in einer DB nicht geben.

In einer korrekt normalisiert aufgebauten DB sollt ein Prüfprotokoll als Bericht für alle Geräte genügen.

Was ist eigentlich in Deinen Excelbeispielen aus den Rast Feldern geworden?
Gruß Klaus

kingwambi

#13
Hallo

ich denke ich geb auf. Ich bleib bei dem wie ich es jetzt habe. Mir fehlt der nötige Grips hierfür  :P - mir geht auch die Zeit aus. Beim nächsten Mal werde ich mich vorher an euch wenden - ev durchschau ich es dann. Ich werde damit leben. Trotzdem danke für die Versuche - etwas wichtiges habe ich gelernt - keine Nachschlagefelder in Tabellen! Dafür bin ich auch sehr dankbar!


kingwambi

Ich würde gerne wieder auf das Ursprüngliche Thema meiner Frage zurückkommen (ich bin soweit fertig). Wie gehe ich vor, wenn ich ein Formular basierend auf eine Abfrage automatisch als PDF in einen Ordner speichern möchte. Wenn die Abfrage 20 Datensätze auswirft, sollen 20 einzelne PDFs in den vorher definierten Ordner (mit Kopf und Fußzeile) abgespeichert werden. Der Dateiname muss lauten <Inventarnummer>_07_<JJJJ.MM.TT>.pdf (das _07_ ist immer fix)
Ich gebe vorher schon zu, dass ich noch nie etwas mit VBA gemacht habe. Nähere Infos hierfür wären toll (wo füge ich was ein - wo gebe ich welche Kriterien / Bezüge an)
ZitatJedes Formular kann mit z. B. Docmd.Printout (über einen PDF-Drucker als PDF-Datei) gedruckt werden, oder (je nach Access-Verison) mit Docmd.Outputto  in eine PDF-Datei konvertiert werden
Über eine auch für Laien leicht verständliche Info würde ich mich freuen.