Neuigkeiten:

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

Mobiles Hauptmenü

Auftragsformulare erstellen

Begonnen von datekk, Februar 03, 2014, 10:15:30

⏪ vorheriges - nächstes ⏩

datekk

Hallo :)

Ich möchte gern mit Access Auftragsformulare erstellen. Die Inhalte kommen aus verschiedenen Tabellen und Abfragen. Ein Auftragsformular soll z.B. die Adresse des Auftraggeber erhalten, die Auftragsinhalte aber weiterhin auch die AGB, verschiedene variable Textblöcke - je nach Auftragsinhalt, Lastschrifteinzug. Unter das ganze Layout soll eine Grafikvorlage gelegt werden - der Briefkopf der Firma. Access soll dies als PDF abspeichern. Dateiname soll dann z.B. Name des Auftraggebers sein, gefolgt von der Auftragsnummer. Das PDF soll als Dateianhang an eine im Access hinterlegte Mailadresse gesandt werden.

Also meine Fragen:

- wie erstelle ich das Formular? nimmt man hier eher die Formulare oder die Berichte?
- wie kann ich die PDF entsprechend meiner o.g. Vorgaben erstellen (Layout / Inhalte)
- wie kann ich diese als Mailanhang automatisch (per Schaltfläche) versenden?

Ich freue mich auf Eure Hilfe.
datekk
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,


Was ist ein "Auftragsformular" bei Dir?  Ein Access-Formular, um z. B. Tabellendaten zu pflegen oder ein Papierausdruck?

ZitatDie Inhalte kommen aus verschiedenen Tabellen und Abfragen.

Hast Du ein vernünftiges Tabellenkonzept (Normalisierung, Beziehungsdefininitionen, Benamsungen, etc.) erstellt und umgesetzt?

ZitatEin Auftragsformular soll z.B. die Adresse des Auftraggeber erhalten, die Auftragsinhalte aber weiterhin auch die AGB, verschiedene variable Textblöcke - je nach Auftragsinhalt, Lastschrifteinzug.

Jeder (Daten-)Wert, der ausgedruckt werden soll, muss in einer Tabelle hinterlegt sein. (--> "variable Textblöcke" ). Statische Werte (AGBs) können in einem Bericht selber hinterlegt und gespeichert werden.

ZitatUnter das ganze Layout soll eine Grafikvorlage gelegt werden - der Briefkopf der Firma.

D. h. im Berichtskopf kommt ein Bild-Steuerelement zum Einsatz, das das Logo (eben im Berichtskopf) anzeigt, bzw. druckt.

ZitatAccess soll dies als PDF abspeichern. Dateiname soll dann z.B. Name des Auftraggebers sein, gefolgt von der Auftragsnummer.

Wenn >A2007 zum Einsatz kommt, ist ein Accessbericht direkt in eine PDF-Datei exportierbar. Den Dateinamen kann man vor/beim Export beliebig (per VBA) zusammensetzen.

ZitatDas PDF soll als Dateianhang an eine im Access hinterlegte Mailadresse gesandt werden.


Das kann Access als solches in seiner Grundfunktionalität nicht und muss gesondert mit VBA programmiert werden.


Zitat- wie erstelle ich das Formular? nimmt man hier eher die Formulare oder die Berichte?

Erstellen:  Grundbedienung von Access (Erstellen, Entwurfsansicht, Objekte einfügen und/oder Assistenten verwenden)
Formulare werden erst erstellt, nachdem die Tabellenstuktur definiert (entwickelt)  und umgesetzt wurde.(siehe oben).
Formulare:  Eingabe/Pflege von Tabellendaten. NICHT für Ausdruck-Zwecke.
Berichte: Nur für Analysen und Ausdrucke ("Layout", "Logo", etc.)


- wie kann ich die PDF entsprechend meiner o.g. Vorgaben erstellen (Layout / Inhalte)

Das "Layout"  wird im Access-Bericht definiert/bestimmt.  Eine PDF-Datei ist lediglich der "papierlose Ausdruck" des Berichtes. Wie oben gesagt, kann ein Bericht in eine PDF-Datei "gedruckt" (exportiert) werden.
Zitat
- wie kann ich diese als Mailanhang automatisch (per Schaltfläche) versenden?

das gibt es mehrere Möglichkeiten:
-- Outlook-Automation (VBA-Fernsteuerung) , falls Outlook als Mail-Programm verwendet wird.
-- Benutzung eines Mail-Bearbeitungs-Objektmodells, falls MAPI verwendet werden kann, z. B. das CDO-Objektmodell
-- Verwendung MS-unabhängiger Mail-Programme, z. B. die Benutzung von vbsendmail.dll
-- Verwendung der Windows-API und WinSock-DLL.




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

datekk

Wow, danke für die überaus umfangreiche Antwort. Ich versuche mal auf das ganze einzugehen:

Also meine Datenbank funktioniert schon sehr gut. Alles gut am laufen. Ich nutze diese für die Vertragserfassung. Ich möchte nun ein ausgefülltes Auftragsformular DRUCKEN bzw per PDF versenden.

Ein Auftrag setzte sich aus folgenden Tabellen zusammen:

Tbl_Auftrag - Hier wird eine AuftragsID vergeben, der Vertrieb zugewiesen (ID), Vertragsdatum erfasst, Kunde zugewiesen (ID)

ID_Auftrag | KundenID | VertiebsID



Tbl_Inhalte - Hier wird der AuftragsID ein Inhalt zugewiesen
ID_Inhalt | AuftragsID | Produkt | Preis

Für das Auftragsformular habe ich eine Abfrage erstellt, welche alle Felder zusammenführt:

grob:
AuftragsID | InhaltsID | KundenID | Produkt | Preis

Der Aufbau soll wie folgt sein:

****************************************************
Kundenname
Straße
PLZ Ort

Ansprechpartner
Telefon
Mailadresse


Auftragsinhalte:

Pos.          Art                                Preis
Pos. 1       Produkt 1                      1000
Pos. 2       Produkt 2                      1000
Pos. 3       Produkt 3                      1000

Gesamtsumme: 3000

Textblock AGB

Var. Textblock 1
Var. Textblock 2

Unterschrift

**************************************************

Wie erstelle ich einen Bericht, der sowohl einzelne Infos, wie die Adresse, wie aber auch tabellarisch für Auftragsinhalte ist?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

vergiss das AuftragsFORMULAR... (für den Ausdruck)

Erstelle zunächst eine Abfrage, die alle nötigen Tabellen (Tabellen, aus denen Attributsdaten benötigt werden) verknüpft.

Die Abfrage wird einem Bericht zugewiesen.

Im Bericht wird über "Gruppieren/Sortieren"  eine Gruppe über die Auftrags-ID mit Kopf und Fuß erzeugt.

Im Berichtskopf wird das Logo platziert.
Im Gruppenkopf (für AuftragsID) kommen alle Daten zu stehen, die im Auftrag nur einmal vorkommen, also z. B. die Kunden-Adressdaten, die Auftragsnummer, evtl. je nach Platzverhältnissen die Firma-Kontaktdaten, ein evtl. einleitender Satz usw.
Im Detailbereich setzt Du die Felder aus der Detailtabelle ("Tbl_Inhalte", könnte auch besser "tblAuftragspositionen" heißen..) ein.
Im Gruppenfuß stehen weitere Auftrags-Daten, z. B. Zusatzkosten zum Auftrag und in berechneten Feldern z. B. die Gesamtsumme des Auftrags, desgleichen die "variablen Textblöcke" (was soll das denn sein und woher kommen die?)

Weil die AGBs in den meisten Fällen recht lang sind, würde ich die AGBs grundsätzlich auf eine weitere Seite verschieben (in den Berichtsfuß mit passend eingestellten Seiteneigenschaften.)

Grundsätzlich muss man sich Gedanken um den "Seitenvorschub" (Einstellungen bei den Bereichs-Eigenschaften)  machen, wenn ein Angebot sich über mehrere Seiten (--> "Variabler Textblock") beim Ausdruck erstrecken kann.


Damit ist nur der Bericht erstellt, der so aufgebaut sein sollte, dass er beim Öffnen aus dem Navibereich und damit ohne Filterung alle(!) Aufträge layoutmäßig korrekt ausgibt (anzeigt oder druckt).


Wie vorher schon gesagt, ist das Exportieren in eine PDF-Datei ein separater Vorgang und benötigt etwas Aufwand (Abfrage-SQL-String per VBA mit einem Filterkriterium versorgen) um einen bestimmten Auftrag als PDF-Datei zu erhalten.
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

datekk

Wow... vielen Dank erstmal. Ich bin am bauen und staune, welch ein mächtiges Tool diese Berichte sind. Ich komme gut voran und melde mich, sobald ich weitere Fragen zu diesem Thema habe... und das wird nicht lange dauern.  ::)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

und da ist auch schon eine weiter Frage:

Ich habe ja eine Firmengrafik (Briefpapier) im Hintergrund. Diese Grafik enthält elemente oben rechts, links und unten.

Nun ist es zum einen so, dass die Grafik nur vollständig angezeigt wird, wenn ich die Seitenränder auf "schmal" stelle. Leider werden dann auch die Berichtsinhalte bis zu diesem unteren Rand dargestellt und liegen somit über wichtigen Informationen der Firma.

Kann man irgendwo einstellen, dass der Textinhalt einen anderen Seitenrand hat als die Hintergrundgrafik?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

database

Hallo,
du hast doch die Texte in Feldern 'verpackt' - damit sollte es doch möglich sein diese soweit vom unteren Rand zu positionieren, dass die Darstellung der Graphik nicht gestört wird.
Andererseits hast du auch die Möglichkeit dem Bericht eine Kopf- und Fußzeile (Berichtskopf und Berichtsfuß) zu verpassen.
Deren Höhen kannst du beliebig einstellen und so einen Freiraum schaffen, der nicht von der Breite der Seitenränder abhängt.

datekk

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

Wie füge ich längeren Text ein (AGB)? Ich erhalte immer die Nachricht "Der Text ist zu lang um bearbeitet werden zu können.."
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

in ein ungebundenes (!)  Textfeld oder auch ein Bezeichnungsfeld kannst Du einen ganzen Roman hineinschreiben... Notfalls geht auch die Aufteilung in zwei oder mehrere Felder.

Sollte das Textfeld gebunden sein (was aber für diesen Zweck ziemlich sinnlos ist), dann können bei Bindung an ein Tabellenfeld vom Datentyp TEXT max. 255 Zeichen aufgenommen werden, bei Bindung an ein Memofeld ist das versionsabhängig, liegt aber bei >=64000 Zeichen.
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

datekk

#10
Also es funzt nicht. Muss da noch was eingestellt werden? Ich erstelle in der Layoutansicht ein ungebundenes Textfeld.

Ich kopiere da meinen Text ein. Da steht z.B. "Wichtig!....." Access will da irgend ne Funktion draus machen und schreibt "Wichtig![" Beim Wechsel in die Seitenansicht will er dann für "Wichtig" einen Wert zugewiesen bekommen.

Weiterhin werden im Layout Modus die Textfelder mit einer grünen Ecke links oben versehen. Rechts oben ist ein Achtungszeichen. Hier kommt die Fehlermeldung "Ungültige Eigenschaft des Steuerelements: Steuerelementinhalt" und "Der Ausdruck muss mit einem Gleichheitszeichen (=) beginnen."

Kann man im Bericht auch weitere Bereiche einfügen? Denn im Moment habe ich die Textfelder auch im Fußbereich der Gruppierung - zusammen mit der Berechnung des Gesamtpreises. Auch wenn mein Auftrag nur eine Position hat wird der komplette Berechnungsbereich wegen dem Text nun auf einer anderen Seite angezeigt.

Wenn man mehrere Auftragsinhalte hat, sodass die Liste auf eine weiteres Seite geht, ist es da möglich eine Art Zwischensumme für die Seite anzuzeigen?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,


Du solltest den Hinweis beachten:

So im Steuerelementinhalt eines Textfeldes (Beachte das Gleichheitszeichen und die Gänsefüße):

="Hier kommen unsere AGBs ...................bis zum Anwinken."


Natürlich sind auch Unterberichte möglich (Es gibt doch das UFO/UB-Steuerelement auch im Bericht).

Darauf würde ich aber zunächst mal verzichten. Ein starrer Seitenvorschub ist normaerweise nicht nötig.

Eine Zwischensumme im Berichtsfuß für den Fall mehrerer Seiten ist etwas hakelig und muss mit VBA-Mitteln berechnet 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

datekk

Ok.. noch ne kleine Formfrage:

Wenn ich einen Bericht erstelle, so haben die standartmäßig vorhandenen Bereiche wie  Berichtskopf, Detailbereich etc. ein hinterlegtes und bearbeitbares Gitternetz, anhand dessen sich die Schaltflächen oder Felder gut anordnen lassen. Wenn ich aber nun z.B. für eine Gruppierung einen Fußbereich erstelle, so ist dieser ohne Gitternetzlinien und das Feld dafür im Menüband ist grau hinterlegt - also hier kann ich nix einstellen. Wie kann ich also in so einem neu erstellten Berichtsbereich ein Gitternetz hinterlegen / optimaler weise dessen Format noch vom vorhergehenden Bereich übernehmen?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

wenn Du das "Raster" meinst, dann sieht das bei mir so aus, ist also in jedem Bereich (in der Entwurfsansicht)vorhanden...
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

datekk

Nein, dass meine ich nicht. Sondern die Leer-Zellen, welche mit Namen emptycell... in den Eigenschaften angegenen werden. Diese geben den Feldern im Bericht eine gewisse Grundordnung in Hinsicht auf Anordnung der Felder oder Schaltflächen. Zu finden Standartmäßig im Berichtskopf, Seitenkopf, Gruppen-Kopf, Detailbereich.

Standartmäßig nicht im Gruppen-Fuß oder Seitenfuß. Und im Gruppenfuß würd ich die jetzt gern haben.

Hier ist es nämlich möglich, sinnvolle Layout Optionen zu nutzen wie z.B. "Darüber einfügen", "Rechts einfügen", "Horizontal teilen"...

Weißt Du was ich meine?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps