{"id":55000122,"date":"2003-10-01T00:00:00","date_gmt":"2020-05-06T15:17:30","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=122"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"EinnahmenUeberschussrechnung_mit_Access","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/","title":{"rendered":"Einnahmen-&Uuml;berschussrechnung mit Access"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg06.met.vgwort.de\/na\/19befc90d29f4732b068605967549e53\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Die Erstellung von Einnahmen-&uuml;berschussrechnungen ist f&uuml;r die meisten Freiberufler eine Qual: Einmal im Jahr werden alle Rechnungen des abgelaufenen Jahres gesammelt, in eine handschriftliche oder vielleicht per Excel erstellte Liste eingetragen und anschlie&szlig;end ausgewertet. M&ouml;glicherweise ist es auch einmal im Monat oder im Quartal soweit, dass das Finanzamt Informationen &uuml;ber eine eventuelle Umsatzsteuervorauszahlung erwartet. In jedem Fall hilft Ihnen die im vorliegenden Beitrag beschriebene Musterl&ouml;sung weiter. Sie sorgt nicht nur f&uuml;r eine komfortable Eingabe, auch f&uuml;r die Ausgabe in Form eines entsprechenden Berichtes.<\/b><\/p>\n<p>Bevor Sie erfahren, wie die einzelnen Komponenten der Musterl&ouml;sung des vorliegenden Beitrags funktionieren, lernen Sie erst einmal ihre Funktionen kennen.<\/p>\n<p>Die Datenbankanwendung Einnahmen-&uuml;berschussrechnung soll Freiberuflern, die ihren Gewinn durch Einnahmen-&uuml;berschussrechnung und nicht durch Buchf&uuml;hrung ermitteln, den Gro&szlig;teil der Arbeit abnehmen.<\/p>\n<p>Der Anwender muss hier nur noch die Gesch&auml;ftsvorf&auml;lle eintragen. Anschlie&szlig;end kann er dann die entsprechenden Auswertungen wie zum Beispiel die Ermittlung der monatlichen oder quartalsm&auml;&szlig;igen Umsatzsteuervorauszahlung und auch die Ermittlung der Umsatzsteuer f&uuml;r das ganze Jahr anzeigen lassen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Anwendung ist nicht nur f&uuml;r Freiberufler interessant. Wenn Ihnen die Wahl zwischen Einnahmen-&uuml;berschussrechnung nicht offen steht und Sie damit diese Anwendung in der Praxis nicht direkt einsetzen k&ouml;nnen, so besteht dennoch die M&ouml;glichkeit, aus den dort verwendeten Techniken zu lernen und diese in andere Anwendungen zu integrieren. <\/p>\n<h2>Start der Anwendung<\/h2>\n<p>Sie starten die Anwendung wie jede andere Datenbankanwendung auch. Es stehen zwei Versionen f&uuml;r Access 97 (E&uuml;97.mdb), f&uuml;r Access 2000 und h&ouml;her (E&uuml;2000.mdb) zur Verf&uuml;gung. Sie finden die Datenbanken auf der beiliegenden Heft-CD.<\/p>\n<p>Die Anwendung erwartet Sie mit einem Intro-Dialog und zeigt statt der &uuml;blichen Access-Elemente wie dem Datenbankfenster und den Standardmen&uuml;s ein speziell auf diese Anwendung zugeschnittes Men&uuml; an (siehe Bild 1).<\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Wenn Sie die Datenbankanwendung bearbeiten m&ouml;chten, halten Sie beim &ouml;ffnen die Umschalttaste gedr&uuml;ckt, also beispielsweise beim Doppelklick auf den Datenbanknamen im Windows-Explorer. Es erscheinen dann die Standardmen&uuml;s und das Datenbankfenster. <\/p>\n<p>Das Men&uuml; Datei enth&auml;lt lediglich zwei Eintr&auml;ge zum Drucken des aktuell angezeigten Berichts sowie zum Beenden der Anwendung.<\/p>\n<h2>Eingabe von Gesch&auml;ftsvorf&auml;llen<\/h2>\n<p>Die Eingabe von Rechnungsinformationen erfolgt im Dialog Gesch&auml;ftsvorfall erfassen, den Sie &uuml;ber den Men&uuml;eintrag Gesch&auml;ftsvorf&auml;lle\/Neu &ouml;ffnen (siehe Bild 2).<\/p>\n<p><IMG height=\"381\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:   Startbildschirm der Musterl&ouml;sung<\/span><\/b><\/p>\n<p><IMG height=\"322\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic002.png\" width=\"317\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Anlegen eines neuen Gesch&auml;ftsvorfalls<\/span><\/b><\/p>\n<p>Hier k&ouml;nnen Sie alle zu einem Gesch&auml;ftsvorfall geh&ouml;renden Informationen eintragen. Das Feld Datum enth&auml;lt als Eingabehilfe eine Schaltfl&auml;che, mit der Sie einen Kalender zur Auswahl des Datums anzeigen k&ouml;nnen.<\/p>\n<p>Unter Gesch&auml;ftsvorfall tragen Sie die Bezeichnung des Vorfalls ein. Die beiden Kombinationsfelder Kategorie und Gesch&auml;ftsvorfallart dienen zur Auswahl der jeweiligen Informationen. Unter Gesch&auml;ftsvorfallart gibt es dabei die beiden M&ouml;glichkeiten Eingang und Ausgang.<\/p>\n<p>Die Rechnungsnummer wird entweder automatisch festgelegt oder von Hand eingegeben. Dabei wird direkt &uuml;berpr&uuml;ft, ob die Rechnungsnummer schon vorhanden ist. Jede Rechnungsnummer kann f&uuml;r Eingangs- und Ausgangsrechnungen je einmal vergeben werden, da diese noch durch ein entsprechendes Pr&auml;fix erg&auml;nzt werden k&ouml;nnen (zum Beispiel AR1 oder ER12).<\/p>\n<p>Ob die Rechnungsnummer automatisch erstellt wird oder nicht, legen Sie in den Optionen der Anwendung fest, die weiter unten beschrieben werden. Falls die Rechnungsnummer manuell erstellt werden muss, k&ouml;nnen Sie mit der Schaltfl&auml;che mit dem Zauberstab eine freie Nummer ausw&auml;hlen lassen.<\/p>\n<p>Im unteren Bereich kann der Anwender die Umsatzdaten eingeben. Der Umsatz selbst kann wahlweise als Brutto- oder Nettoumsatz eingegeben werden. Es ist lediglich festzulegen, welche Variante gew&auml;hlt wurde. Die Option ist auf den Wert Netto voreingestellt. <\/p>\n<h2>Gesch&auml;ftsvorfall als Serie anlegen<\/h2>\n<p>Beim Erfassen von Gesch&auml;ftsvorf&auml;llen k&ouml;nnen Sie wahlweise nur einen, aber auch mehrere Vorf&auml;lle mit gleichen Eigenschaften anlegen. Die einzige Variable ist dabei das Datum.<\/p>\n<p>Zum Anlegen einer Serie klicken Sie auf die Schaltfl&auml;che Serie bearbeiten und &ouml;ffnen so den Dialog Datumserie bearbeiten.<\/p>\n<p>Hier k&ouml;nnen Sie sowohl das Startdatum anpassen, das auf den im vorherigen Dialog festgelegten Datumswert eingestellt ist. Au&szlig;erdem w&auml;hlen Sie hier das Intervall aus (Tag, Woche, Monat oder Jahr) und geben die Schrittweite an. In Bild 3 wird beispielsweise eine Terminserie mit zweiw&ouml;chigem Abstand &uuml;ber zw&ouml;lf Einheiten festgelegt.<\/p>\n<h2>Ansehen der Gesch&auml;ftsvorf&auml;lle in der &uuml;bersicht<\/h2>\n<p>Die &uuml;bersicht kann &uuml;ber den Men&uuml;eintrag Gesch&auml;ftsvorf&auml;lle\/&uuml;bersicht aufgerufen werden. Sie zeigt in zwei Tabellen die nach Eingang und Ausgang unterteilten Gesch&auml;ftsvorf&auml;lle an (siehe Bild 4).<\/p>\n<p>Die angezeigten Daten k&ouml;nnen nach dem Datum und nach Gesch&auml;ftsvorf&auml;llen ohne Rechnungsnummern gefiltert werden. Letzteres hat den Hintergrund, dass beim Anlegen von Serien bei ausgeschalteter automatischer Rechnungsnummerierung Gesch&auml;ftsvorf&auml;lle ohne Rechnungsnummer generiert werden. Mit der Filterfunktion k&ouml;nnen Sie diese Datens&auml;tze leicht identifizieren und um entsprechende Rechnungsnummern erg&auml;nzen.<\/p>\n<p><IMG height=\"502\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic003.png\" width=\"397\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Anlegen einer Serie von Gesch&auml;ftsvorf&auml;llen<\/span><\/b><\/p>\n<p><IMG height=\"383\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic004.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  &uuml;bersicht der Gesch&auml;ftsvorf&auml;lle<\/span><\/b><\/p>\n<p>Das Formular enth&auml;lt je Datensatz zwei Schaltfl&auml;chen, mit denen der Datensatz entweder im Detail angezeigt oder gel&ouml;scht werden kann. Letzteres nat&uuml;rlich erst nach der Best&auml;tigung durch den Benutzer.<\/p>\n<h2>Auswertung der Gesch&auml;ftsvorf&auml;lle<\/h2>\n<p>Die Anwendung enth&auml;lt einen Bericht, der die Eigenschaften der Gesch&auml;ftsvorf&auml;lle auf unterschiedliche Arten darstellen kann.<\/p>\n<p>Der Dialog Auswertungen anzeigen dient der Einstellung der Berichtseigenschaften. Je nachdem, &uuml;ber welchen der Untereintr&auml;ge des Men&uuml;punktes Auswertung Sie das Formular aufrufen, wird eine der drei unter Auswertung angezeigten Punkte ausgew&auml;hlt.<\/p>\n<p>Neben der Auswahl einer der drei Varianten Monats-, Quartals- und Jahresauswertung mit den entsprechenden Datumsangaben k&ouml;nnen Sie in dem Dialog noch festlegen, wie die Daten gruppiert werden sollen.<\/p>\n<p>Dabei stehen die Varianten Zeitraum und Eingang\/Ausgang zur Verf&uuml;gung. Au&szlig;erdem k&ouml;nnen Sie die Reihenfolge der Gruppierung festlegen.<\/p>\n<h2>Anzeige der Auswertung<\/h2>\n<p>Nach dem Festlegen der Auswertungseigenschaften und einem Mausklick auf die Schaltfl&auml;che Anzeigen &ouml;ffnet die Anwendung den Bericht mit der Auswertung (siehe Bild 6).<\/p>\n<p>Der Bericht zeigt die Auswertung f&uuml;r die in Bild 5 gemachten Angaben. Er enth&auml;lt die Daten f&uuml;r das dritte Quartal, zuerst nach dem Monat und dann nach Eingang und Ausgang gruppiert. Jede Gruppierung enth&auml;lt eine Summe der enthaltenen Betr&auml;ge. Am Fu&szlig; des Berichts wird der Einnahmen-&uuml;berschuss angezeigt.<\/p>\n<p><IMG height=\"239\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic005.png\" width=\"355\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Anpassung der anzuzeigenden Auswertung<\/span><\/b><\/p>\n<p><IMG height=\"372\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Auswertung der Einnahmen-&uuml;berschussrechnung<\/span><\/b><\/p>\n<h2>Verwaltung von Stammdaten<\/h2>\n<p>Im Men&uuml; Stammdaten finden Sie drei Eintr&auml;ge, die zum Bearbeiten der Kategorien, Mehrwertsteuers&auml;tze und sonstiger Optionen dienen.<\/p>\n<h3>Kategorien bearbeiten<\/h3>\n<p>&uuml;ber den Men&uuml;eintrag Stammdaten\/Kategorien &ouml;ffnen Sie den Dialog Kategorien. Der Dialog dient zum Bearbeiten und L&ouml;schen bestehender und zum Anlegen neuer Kategorien (siehe Bild 7). Eine Umbenennung von Kategorien wirkt sich auch unmittelbar auf bereits angelegte Gesch&auml;ftsvorf&auml;lle aus.<\/p>\n<h3>Mehrwertsteuers&auml;tze bearbeiten<\/h3>\n<p>Die Mehrwertsteuers&auml;tze k&ouml;nnen im Dialog Mehrwertsteuers&auml;tze bearbeitet werden (siehe Bild 8). Da sich &auml;nderungen der Steuers&auml;tze ebenfalls auf bereits vorhandene Gesch&auml;ftsvorf&auml;lle auswirken w&uuml;rden, ist die Bearbeitung gesperrt. Es k&ouml;nnen lediglich neue Steuers&auml;tze angelegt werden. Auch das L&ouml;schen von Steuers&auml;tzen, die bereits f&uuml;r einen Gesch&auml;ftsvorfall festgelegt wurden, ist nicht m&ouml;glich.<\/p>\n<h3>Sonstige Optionen<\/h3>\n<p>Die Anwendung bietet die M&ouml;glichkeit, Rechnungen automatisch mit einer Nummer zu versehen. Das ist vor allem dann interessant, wenn Gesch&auml;ftsvorf&auml;lle auftreten, die periodisch wiederkehren.<\/p>\n<p><IMG height=\"344\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic007.png\" width=\"334\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Bearbeiten von Kategorien<\/span><\/b><\/p>\n<p><IMG height=\"232\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic008.png\" width=\"271\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Dialog zum Verwalten der Mehrwertsteuers&auml;tze<\/span><\/b><\/p>\n<p><IMG height=\"275\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic009.png\" width=\"317\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Optionen f&uuml;r die Rechnungseingabe und -ausgabe<\/span><\/b><\/p>\n<p>Im oberen Teil des Dialoges Optionen k&ouml;nnen Sie festlegen, ob die Rechnungsnummern automatisch oder manuell erstellt werden sollen.<\/p>\n<p>Im unteren Teil legen Sie fest, mit welchem Pr&auml;fix Eingang- und Ausgangsrechnungen bei der Ausgabe per Bericht versehen werden sollen (siehe Bild 9).<\/p>\n<p>Das Datenmodell der Einnahmen-&uuml;berschussrechnung beinhaltet vier Tabellen, die zur Beschreibung der Gesch&auml;ftsvorf&auml;lle und deren Details dienen. Informationen zu den einzelnen Feldern der Tabellen und deren Verkn&uuml;pfungen k&ouml;nnen Sie Bild 10 entnehmen.<\/p>\n<p>Neben der Haupttabelle tblGeschaeftsvorfaelle gibt es drei Lookup-Tabellen, mit denen die Kategorie, der Mehrwertsteuersatz sowie die Gesch&auml;ftsvorfallart des Gesch&auml;ftsvorfalls ausgew&auml;hlt werden k&ouml;nnen.<\/p>\n<h3>Hinweis<\/h3>\n<p>F&uuml;r weitere Informationen &uuml;ber die Tabellen und deren Aufbau konsultieren Sie die Musterl&ouml;-sung. <\/p>\n<p>Neben diesen Tabellen gibt es lediglich noch die Tabelle tblOptionen. Diese Tabelle besteht nur aus einem Ja\/Nein-Feld, in dem gespeichert wird, ob die Rechnungsnummern automatisch oder manuell erstellt werden sollen.<\/p>\n<p><IMG height=\"303\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic010.png\" width=\"390\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10:  Datenmodell der Einnahmen-&uuml;berschussrechnung<\/span><\/b><\/p>\n<p>Die Datenbank enth&auml;lt eine benutzerdefinierte Men&uuml;leiste und zeigt bis auf wenige Ausnahmen keine Standardmen&uuml;s an. Eine dieser Ausnahmen ist die Anzeige von Berichten. Hier ist die Anzeige der Berichtsmen&uuml;leiste erforderlich, um beispielsweise den Zoom-Faktor und andere Ansichteigenschaften einzustellen.<\/p>\n<h2>Steuerung der Men&uuml;leiste<\/h2>\n<p>Die Steuerung der Men&uuml;leiste erfolgt &uuml;ber einen Satz speziell daf&uuml;r vorgesehener Funktionen und Prozeduren, die Sie in dem VBA-Modul mdlMenueleisten finden.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Funktionen und Prozeduren zum Erstellen werden im Beitrag Dynamische Men&uuml;s mit VBA in Ausgabe 4\/2003 von Access im Unternehmen erl&auml;utert. Die dort vorgestellten Methoden werden jedoch st&auml;ndig optimiert, sodass die Funktionen unter Umst&auml;nden kleine Unterschiede aufweisen k&ouml;nnen. <\/p>\n<p>Dieses Modul besteht aus zwei unterschiedlichen S&auml;tzen von Prozeduren und Funktionen:<\/p>\n<p>Der erste Satz umfasst alle Prozeduren, die dem Anlegen der Men&uuml;s, Untermen&uuml;s und Steuerelemente dienen. Diese werden seit Ausgabe 4\/2003 von Access im Unternehmen f&uuml;r einige Musterl&ouml;sungen verwendet und sind in jeder Musterl&ouml;sung gleich. Es k&ouml;nnen lediglich &auml;nderungen durch Korrekturen von Fehlern oder durch Optimierungen auftreten.<\/p>\n<p>Der zweite Satz besteht aus den anwendungsspezifischen Prozeduren und Funktionen. Die wichtigste Prozedur ist dabei die Prozedur MenueErstellen. Sie enth&auml;lt neben einigen anderen Anweisungen die Aufrufe der Prozeduren aus der ersten Gruppe, um die einzelnen Elemente des Men&uuml;s anzulegen. Au&szlig;erdem gibt es noch die Funktionen, die durch das Bet&auml;tigen der einzelnen Men&uuml;eintr&auml;ge ausgel&ouml;st werden. Diese k&ouml;nnen beispielsweise dem Drucken eines Berichts, Beenden der Datenbank oder dem Anzeigen eines bestimmten Formulars dienen.<\/p>\n<p>Wenn Sie sich den Inhalt des Moduls zu Gem&uuml;te f&uuml;hren und gegebenenfalls auf den oben genannten Beitrag Dynamische Men&uuml;s mit VBA zur&uuml;ckgreifen, werden Sie schnell feststellen, wie einfach Sie auch Ihren eigenen Anwendungen dynamische Men&uuml;s hinzuf&uuml;gen k&ouml;nnen.<\/p>\n<p>Beim normalen Start der Anwendung, also ohne gleichzeitiges Dr&uuml;cken der Umschalttaste, wird automatisch das Formular frmIntro angezeigt. <\/p>\n<p>Dieses Formular finden Sie in allen Musterl&ouml;sungen und Beispieldatenbanken. In Anwendungen mit benutzerdefinierter Men&uuml;leiste hat es allerdings eine besondere Funktion, wie folgende Punkte zeigen:<\/p>\n<li>Das Formular schaltet beim Start die Warnmeldungen aus, wie zum Beispiel bei Datensatz&auml;nderungen, blendet alle Standardmen&uuml;s aus und ruft die Prozedur zum Erstellen des benutzerdefinierten Men&uuml;s auf (s. Quellcode 1).<\/li>\n<li>Das Formular wird nach dem Mausklick auf Start nicht geschlossen, sondern lediglich unsichtbar gemacht (s. Quellcode 2).<\/li>\n<li>Dadurch ist es bis zum Schlie&szlig;en der Datenbank ge&ouml;ffnet. Wird die Datenbank geschlossen, passiert das gleiche mit dem Formular. Dabei wird das Ereignis Beim Entladen ausgel&ouml;st, wo die herk&ouml;mmlichen Men&uuml;s wieder eingeblendet und die Fehlermeldungen wieder aktiviert werden (s. Quellcode 3).<\/li>\n<pre>Private Sub Form_Current()\r\n    DoCmd.SetWarnings False\r\n    AlleMenueleistenAusblenden\r\n    MenueErstellen\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<pre>Private Sub lblStart_Click()\r\n    Me.Visible = False\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<pre>Private Sub Form_Unload(Cancel As _    Integer)\r\n    If Me.ctlDatenbankSchliessen = _        False Then\r\n        DoCmd.ShowToolbar \"Database\"\r\n        DoCmd.ShowToolbar \"Menu Bar\"\r\n    End If\r\n    DoCmd.SetWarnings True\r\nEnd Sub<\/pre>\n<p><!--30percent--><\/p>\n<p><b>Quellcode 3<\/b><\/p>\n<h3>Praxis-Tipp<\/h3>\n<p>Nat&uuml;rlich sehen Sie von all diesen Aktionen nicht sehr viel, da das Formular ja unsichtbar ist. Wenn Sie trotzdem sichergehen wollen, dass die gew&uuml;nschten Schritte durchgef&uuml;hrt werden, sollten Sie einfach eine MsgBox-Anweisung in Quellcode 3 unterbringen. Sie werden dann beim Schlie&szlig;en der Datenbank feststellen, dass die Vorgehensweise funktioniert. <\/p>\n<p>F&uuml;r die Funktionalit&auml;t der Anwendung sind die Formulare zur Anzeige der &uuml;bersicht &uuml;ber die Gesch&auml;ftsvorf&auml;lle, zum Anlegen neuer Gesch&auml;ftsvorf&auml;lle und damit verbunden das Formular zum Definieren von Terminserien sowie das Formular zur Festlegung der Auswertungsoptionen interessant.<\/p>\n<p>Die weiteren Formulare dienen lediglich dem Verwalten der Stammdaten wie der Optionen, der Kategorien und der Mehrwertsteuers&auml;tze und weisen keine besonders interessanten Eigenschaften auf.<\/p>\n<p>Da eine &uuml;bersicht ohne Daten keinen Sinn macht, lernen Sie nun zun&auml;chst die Formulare zum Eingeben der Gesch&auml;ftsvorf&auml;lle kennen.<\/p>\n<h2>Eingeben von Gesch&auml;ftsvorf&auml;llen<\/h2>\n<p>Das Formular frmGesch&auml;ftsvorfallDetailansicht dient im Wesentlichen der Eingabe neuer Gesch&auml;ftsvorf&auml;lle. Es kann zwar auch zum Bearbeiten von Datens&auml;tzen verwendet werden, aber dies sollte in der Regel nicht notwendig sein, da beim Anlegen eines Gesch&auml;ftsvorfalles mit ein wenig Konzentration wohl kaum Fehler passieren d&uuml;rften.<\/p>\n<p>Das Formular besteht aus den in Bild 11 dargestellten Steuerelementen. Die Eingabefelder orientieren sich exakt an den Feldern der Tabelle tblGeschaeftsvorfaelle, lediglich das Prim&auml;rindexfeld GeschaeftsvorfallID wird nicht angezeigt. Dementsprechend dient die Tabelle tblGeschaeftsvorfaelle als Datenherkunft f&uuml;r das Formular.<\/p>\n<p>Au&szlig;erdem enth&auml;lt das Formular zwei Schaltfl&auml;chen, die Funktionen zur Erleichterung der Eingabe enthalten, sowie einige Steuerelemente zur Anzeige von Informationen rund um den Umsatz im unteren Bereich des Formulars.<\/p>\n<p><IMG height=\"386\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic011.png\" width=\"364\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11:  Entwurfsansicht des Formulars frmGeschaeftsvorfallDetailansicht<\/span><\/b><\/p>\n<h3>&ouml;ffnen des Formulars<\/h3>\n<p>Beim &ouml;ffnen des Formulars wird die Prozedur aus Quellcode 4 aufgerufen. Die Prozedur &uuml;berpr&uuml;ft, ob ein neuer Datensatz angelegt wird oder ob die Eigenschaften eines bestehenden Datensatzes angezeigt werden sollen.<\/p>\n<p>Im Falle eines neuen Datensatzes wird das aktuelle Datum in das Feld Datum geschrieben. Au&szlig;erdem wird die Schaltfl&auml;che cmdTerminserie, die dem Bearbeiten der Terminserieneigenschaften dient, aktiviert.<\/p>\n<p>Im Falle eines vorhandenen Datensatzes wird diese Schaltfl&auml;che deaktiviert, da nur f&uuml;r neue Datens&auml;tze Terminserien angelegt werden k&ouml;nnen.<\/p>\n<p>Anschlie&szlig;end wird die Prozedur UmsatzdatenAktualisieren aufgerufen, die weiter unten erl&auml;utert wird.<\/p>\n<pre>Private Sub Form_Current()\r\n    If Me.NewRecord Then\r\n        Me.Datum = Date\r\n        Me.cmdTerminserie.Enabled = True\r\n    Else\r\n        Me.cmdTerminserie.Enabled = False\r\n    End If\r\n    UmsatzdatenAktualisieren\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<h3>Vereinfachte Datumseingabe<\/h3>\n<p>Mit der Schaltfl&auml;che rechts neben dem Textfeld Datum kann ein Formular mit dem Kalendersteuerelement aufgerufen werden. Hier kann der Benutzer einfach das gew&uuml;nschte Datum ausw&auml;hlen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Anwendung des Kalender-Steuerelements zur Vereinfachung der Eingabe von Datumsangaben wurde im Beitrag Eingabe des Datums mit dem Kalendersteuerelement in Heft 4\/2001 von Access im Unternehmen ausf&uuml;hrlich beschrieben. <\/p>\n<p>Bez&uuml;glich der Eingabe des Datums von Hand ist dieses Formular etwas restriktiv: Das Feld Datum ist schlichtweg gesperrt. Das Datum kann nur &uuml;ber das Kalender-Steuerelement  ge&auml;ndert werden.<\/p>\n<h3>Automatische oder manuelle Auswahl von Rechnungsnummern<\/h3>\n<p>Die Rechnungsnummer stellt eine besondere Aufgabe dar. Um einen Bezug zwischen den realen Rechnungen auf Papier und den in der Datenbank gespeicherten Informationen herzustellen, sollten die Rechnungsnummern &uuml;bereinstimmen. Um auf einen Blick zwischen Eingangs- und Ausgangsrechnungen unterscheiden zu k&ouml;nnen, werden diese durch entsprechende Pr&auml;fixe wie ER f&uuml;r Eingangsrechnung beziehungsweise AR f&uuml;r Ausgangsrechnung gekennzeichnet.<\/p>\n<p>Um sicherzustellen, dass jede Rechnungsnummer nur einmal auf einer Eingangsrechnung beziehungsweise Ausgangsrechnung auftaucht, kann der Benutzer entweder selbst Hand anlegen und die Rechnungsnummern alle selbst vergeben oder er verwendet die Option, dass alle Rechnungen von der Anwendung eine eindeutige Nummer zugewiesen bekommen.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Einstellung, ob die Rechnungsnummern manuell oder automatisch zugewiesen werden, nehmen Sie im Dialog Optionen der Musterl&ouml;sung vor. <\/p>\n<p>Wenn die Rechnungsnummern automatisch erstellt werden sollen, wird dies beim Neuanlegen eines Gesch&auml;ftsvorfalls direkt nach der Auswahl der Gesch&auml;ftsvorfallart erledigt.<\/p>\n<p>Dieser Zeitpunkt ist sinnvoll, da die Anwendung ja &uuml;berpr&uuml;fen muss, ob die Rechnungsnummer f&uuml;r die jeweilige Gruppe, also Eingang oder Ausgang, bereits vorhanden ist.<\/p>\n<p>Durch die Ereigniseigenschaft Nach Aktualisierung des Kombinationsfeldes GeschaeftsvorfallartID wird die Prozedur aus Quellcode 6 ausgel&ouml;st.<\/p>\n<p>Diese Prozedur &uuml;berpr&uuml;ft, ob die Rechnungsnummer automatisch ausgew&auml;hlt werden soll und ruft gegebenenfalls die Funktion IDFinden auf.<\/p>\n<h3>Freie ID finden<\/h3>\n<p>Die Funktion IDFinden dient dem Auffinden des kleinsten nicht verwendeten Wertes in einem bestimmten Feld der &uuml;bergebenen Datenherkunft (s. Quellcode 7). Falls die IDs kontinuierlich gef&uuml;llt wurden, gibt die Funktion die um eins erh&ouml;hte h&ouml;chste ID der Datenherkunft zur&uuml;ck.<\/p>\n<pre>Private Sub GeschaeftsvorfallartID_AfterUpdate()\r\n    If DLookup(\"Rechnungsnummern\", \"tblOptionen\") = 1 _        Then\r\n        Me!Rechnungsnummer = IDFinden(\"SELECT * \" _            & \"FROM tblGeschaeftsvorfaelle WHERE \"  _            & \"GeschaeftsvorfallartID = \" _            &  Me!GeschaeftsvorfallartID _            & \" ORDER BY Rechnungsnummer\", _            \"Rechnungsnummer\")\r\n    End If\r\n    If RechnungsnummerPruefen = True Then\r\n        Me!Rechnungsnummer.SetFocus\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 6<\/b><\/p>\n<pre>Public Function IDFinden(Datenherkunft As String, _        Feld As String)\r\n    Dim db As Database\r\n    Dim rst As Recordset\r\n    Dim i As Integer\r\n    Set db = CurrentDb\r\n    Set rst = db.OpenRecordset(Datenherkunft)\r\n    i = 1\r\n    Do While Not rst.EOF\r\n        If Not rst(Feld) = i And Not IsNull(rst(Feld)) _            Then\r\n            IDFinden = i\r\n            Exit Function\r\n        End If\r\n        i = i + 1\r\n        rst.MoveNext\r\n    Loop\r\n    IDFinden = i\r\nEnd Function<\/pre>\n<p><b>Quellcode 7<\/b><\/p>\n<pre>Private Sub UmsatzdatenAktualisieren()\r\n    Dim Mehrwertsteuersatz As Single\r\n    Mehrwertsteuersatz = _        Me!MehrwertsteuersatzID.Column(1)\r\n    Me.txtNetto = IIf(Me.ogrUmsatzdaten = 1, _        Me.Umsatz, Me.Umsatz \/ (1 + Mehrwertsteuersatz))\r\n    Me.txtBrutto = Me.txtNetto * _        (1 + Mehrwertsteuersatz)\r\n    Me.txtMehrwertsteuer = Me.txtNetto * _        Mehrwertsteuersatz\r\n    Me.txtMehrwertsteuersatz = Mehrwertsteuersatz\r\nEnd Sub<\/pre>\n<p><b>Quellcode 8<\/b><\/p>\n<p>Als Datenherkunft wird die Tabelle bzw. Abfrage &uuml;bergeben, f&uuml;r die eine freie ID gefunden werden soll. Die Datenherkunft darf keine Sortierungskriterien enthalten, da die Datenherkunft automatisch nach dem fraglichen Feld sortiert wird.<\/p>\n<p>Um L&uuml;cken in den Werten des gesuchten Feldes zu finden, vergleicht die Funktion den Wert Schritt f&uuml;r Schritt mit einem mitlaufenden Z&auml;hler. Sobald die Differenz zwischen zwei aufeinanderfolgenden Werten des betroffenen Feldes gr&ouml;&szlig;er eins ist, entdeckt die Funktion dies und gibt den fehlenden Wert als Ergebnis zur&uuml;ck.<\/p>\n<h3>Umsatzdaten festlegen<\/h3>\n<p>Interessant sind mindestens zwei der Umsatzdaten Nettoumsatz, Mehrwertsteuersatz, enthaltene Mehrwertsteuer und Bruttoumsatz. Zur Berechnung dieser Werte ben&ouml;tigt man lediglich derer zwei, wobei es keine Rolle spielt, welche beiden das sind. In der Regel sind aber der Steuersatz sowie entweder der Nettobetrag oder der Bruttobetrag bekannt.<\/p>\n<p>Das Formular zur Eingabe der Daten bietet allen notwendigen Komfort, um den unterschiedlichen Varianten gerecht zu werden. Der Benutzer muss hier lediglich den Umsatz und den Steuersatz eingeben. Sofern der Umsatz nicht der Netto-Umsatz ist, kann dies mit durch die Auswahl der Option Brutto statt Netto ber&uuml;cksichtigt werden.<\/p>\n<p>Beim &ouml;ffnen des Formulars sowie nach jeder &auml;nderung eines der Steuerelemente im Bereich Umsatz werden die Werte der vier Textfelder im unteren Abschnitt neu berechnet.<\/p>\n<p>Dazu wird jeweils die Prozedur aus Quellcode 8 aufgerufen. Die Prozedur &uuml;berpr&uuml;ft, welche der beiden Optionen Brutto oder Netto ausgew&auml;hlt ist, und ermittelt in Abh&auml;ngigkeit davon den Nettowert des Umsatzes sowie den Bruttowert und die Mehrwertsteuer.<\/p>\n<h2>Festlegen von Terminserien f&uuml;rGesch&auml;ftsvorf&auml;lle<\/h2>\n<p>Gesch&auml;ftsvorf&auml;lle treten unter Umst&auml;nden regelm&auml;&szlig;ig auf. Der Komfort der vorliegenden Anwendung erh&ouml;ht sich schlagartig, wenn solche Daten auf einen Rutsch eingegeben werden k&ouml;nnen.<\/p>\n<p>Problematisch hingegen ist das weitere Vorgehen mit solchen Daten. Dabei k&ouml;nnen zwei F&auml;lle auftreten:<\/p>\n<li>Ein Datensatz muss angepasst werden.<\/li>\n<li>Alle Datens&auml;tze m&uuml;ssen angepasst werden.<\/li>\n<p>Das Unterst&uuml;tzen beider M&ouml;glichkeiten ist mit sehr hohem Aufwand verbunden. Selbst Microsoft Outlook bietet keine schl&uuml;ssige Methode: Wenn Sie hier eine Terminserie eintragen, einen Termin dieser Serie l&ouml;schen und dann die Zeiten f&uuml;r die Terminserie &auml;ndern, dann taucht der gel&ouml;schte Termin wieder auf.<\/p>\n<p>Die Einnahmen-&uuml;berschussrechnung enth&auml;lt einen Ansatz, der lediglich das Anlegen einer Terminserie unterst&uuml;tzt. Sie k&ouml;nnen damit beliebige Terminserien anlegen und diese anschlie&szlig;end individuell anpassen. Ein anschlie&szlig;endes Anpassen der ganzen Serie ist nicht m&ouml;glich. Ebenso k&ouml;nnen Sie einen bereits bestehenden Gesch&auml;ftsvorfall nicht mehr in eine Serie umwandeln.<\/p>\n<p>Zum Anlegen einer Terminserie wird ein Dialog verwendet, dessen Entwurfsansicht in Bild 12 zu finden ist.<\/p>\n<p><IMG height=\"468\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic012.png\" width=\"295\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12:  Formular zum Anlegen von Terminserien in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Die Ereigniseigenschaft Beim &ouml;ffnen l&ouml;st die Prozedur aus Quellcode 9 aus. Die Prozedur setzt das Startdatum auf den im Formular frmGeschaeftsvorfallDetailansicht angegebenen Datumswert. F&uuml;r das Feld EinheitID wird der erste vorhandene Eintrag ausgew&auml;hlt. Au&szlig;erdem ruft die Prozedur eine weitere Prozedur namens ListeAktualisieren auf, die weiter unten beschrieben wird.<\/p>\n<pre>Private Sub Form_Current()\r\n    Me!Startdatum = Me.OpenArgs\r\n    Me!EinheitID = Me!EinheitID.ItemData(0)\r\n    ListeAktualisieren\r\nEnd Sub<\/pre>\n<p><b>Quellcode 9<\/b><\/p>\n<p>Das Feld Startdatum ist wie das Feld Datum aus dem Formular frmGeschaeftsvorfallDetailansicht mit einer Schaltfl&auml;che zur vereinfachten Datumseingabe ausgestattet.<\/p>\n<pre>Private Function ListeAktualisieren()\r\n    Dim Datum As Date, Startdatum As Date\r\n    Dim i As Integer, Schrittweite As Integer\r\n    Dim strWertliste As String\r\n    If Me!ogrLetzterTag = -1 Then\r\n        Startdatum = _            LetztesDatumDesMonats(Me!Startdatum)\r\n    Else\r\n        Startdatum = Me!Startdatum\r\n    End If\r\n    Schrittweite = Me!Schrittweite\r\n    strWertliste = strWertliste & \"''\" & Startdatum _        & \"'';\"\r\n    For i = 1 To Me!Anzahl - 1\r\n        Datum = DatumTerminserie(Startdatum, _             Me!EinheitID, Me!Schrittweite, _             Me!LetzterTag, i)\r\n        strWertliste = strWertliste & Datum & \";\"\r\n    Next i\r\n    Me!lstDaten.RowSource = strWertliste\r\nEnd Function<\/pre>\n<p><b>Quellcode 10<\/b><\/p>\n<pre>Public Function DatumTerminserie(Startdatum As Date, _    EinheitID As Integer, Schrittweite As Integer, _    LetzterTag As Boolean, i As Integer)\r\n    Dim Datum As Date\r\n    Select Case EinheitID\r\n        Case 1 ''Tag\r\n            Datum = DateAdd(\"d\", 1 * i * Schrittweite, _                Startdatum)\r\n        Case 2 ''Woche\r\n            Datum = DateAdd(\"d\", 7 * i * Schrittweite, _                Startdatum)\r\n        Case 3 ''Monat\r\n            If LetzterTag = -1 Then\r\n                Datum = _                    LetztesDatumDesMonats(DateAdd(\"m\", _                    1 * i * Schrittweite, Startdatum))\r\n            Else\r\n                Datum = DateAdd(\"m\", 1 * i * _                    Schrittweite, Startdatum)\r\n            End If\r\n        Case 4 ''Jahr\r\n            Datum = DateAdd(\"y\", 1 * i * Schrittweite, _                Startdatum)\r\n    End Select\r\n    DatumTerminserie = Datum\r\nEnd Function<\/pre>\n<p><b>Quellcode 11<\/b><\/p>\n<p>Mit dem Kombinationsfeld EinheitID kann der Benutzer festlegen, welches Intervall der Serie zugrunde liegt. Das Feld hat folgende Wertliste als Datenherkunft:<\/p>\n<pre>\"1\";\"Tag\";\"2\";\"Woche\";\"3\";\"Monat\";\"4\";\"Jahr\"<\/pre>\n<p>Nach der Aktualisierung des Kombinationsfeldes wird wie beim &ouml;ffnen des Formulars die Prozedur ListeAktualisieren aufgerufen. Auch die entsprechenden Ereignisprozeduren der beiden anderen Eingabefelder Anzahl und Schrittweite enthalten diesen Prozeduraufruf.<\/p>\n<p>Die Optionsgruppe ogrLetzterTag enth&auml;lt zwei Optionen. Sie ist beim &ouml;ffnen des Formulars deaktiviert und wird nur aktiviert, wenn im Kombinationsfeld EinheitID der Eintrag Monat ausgew&auml;hlt ist. Wenn der Benutzer diese Option auf den Wert Ja einstellt, wird beim Anlegen der Terminserie jeweils der letzte Tag des Monats als Tag verwendet. Das ist nicht anders realisierbar, da nicht alle Monate die gleiche Anzahl Tage haben.<\/p>\n<p>Die Funktion ListeAktualisieren dient dazu, im Listenfeld lstDaten die Vorschau der Daten der Terminserie anzuzeigen (s. Quellcode 10).<\/p>\n<p>Die Funktion &uuml;berpr&uuml;ft zun&auml;chst, welchen Wert die Optionsgruppe ogrLetzterTag hat, und berechnet dementsprechend den ersten Termin. Dabei handelt es sich entweder um das im Feld Datum eingetragene Datum oder den letzten Tag des Monats, in den dieses Datum f&auml;llt. Zur Berechnung dieses Tages wird die Funktion LetztesDatumDesMonats verwendet, die hier nicht n&auml;her erl&auml;utert wird.<\/p>\n<pre>Private Sub cmdOk_Click()\r\n    If Me.NewRecord = True And IstFormularGeoeffnet(\"frmTerminserien\") Then\r\n        DoCmd.RunCommand acCmdSaveRecord\r\n        Dim db As Database\r\n        Dim rstQuelle As Recordset\r\n        Dim rstZiel As Recordset\r\n        Dim Feld As Field\r\n        Dim i As Integer\r\n        Dim j As Integer\r\n        Set db = CurrentDb\r\n        Set rstQuelle = db.OpenRecordset(\"SELECT * FROM tblGeschaeftsvorfaelle \" _            & \"WHERE GeschaeftsvorfallID = \" & Me!GeschaeftsvorfallID, dbOpenDynaset)\r\n        Set rstZiel = db.OpenRecordset(\"SELECT * FROM tblGeschaeftsvorfaelle WHERE \" _            & \"GeschaeftsvorfallID = 0\", dbOpenDynaset)\r\n        For j = 1 To Forms!frmTerminserien!Anzahl\r\n            rstZiel.AddNew\r\n            For i = 1 To rstQuelle.Fields.Count - 1\r\n                rstZiel.Fields(i) = rstQuelle.Fields(i)\r\n            Next i\r\n            rstZiel!Datum = DatumTerminserie(Forms!frmTerminserien!Startdatum, _                Forms!frmTerminserien!EinheitID, Forms!frmTerminserien!Schrittweite, _                Forms!frmTerminserien!LetzterTag, j)\r\n            If DLookup(\"Rechnungsnummern\", \"tblOptionen\") = 1 Then\r\n                rstZiel!Rechnungsnummer = IDFinden(\"SELECT * FROM \" _                    & \"tblGeschaeftsvorfaelle WHERE GeschaeftsvorfallartID = \" _                    & rstZiel!GeschaeftsvorfallartID & \" AND Year(Datum) = \" _                    & Year(rstZiel!Datum), \"Rechnungsnummer\")\r\n            End If\r\n            rstZiel.Update\r\n        Next j\r\n    End If\r\n    DoCmd.Close acForm, Me.Name\r\n    If IstFormularGeoeffnet(\"frmGeschaeftsvorfaelle\") Then\r\n        Forms!frmGeschaeftsvorfaelle!sfmGeschaeftsvorfaelleEingang.Requery\r\n        Forms!frmGeschaeftsvorfaelle!sfmGeschaeftsvorfaelleAusgang.Requery\r\n        Forms!frmGeschaeftsvorfaelle.Requery\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 12<\/b><\/p>\n<p>Die einzelnen Daten werden innerhalb einer For Next-Schleife ermittelt, die von 1 bis zur im Feld Anzahl angegebenen Anzahl l&auml;uft und jeweils die Funktion DatumTerminserie mit den &uuml;brigen Feldinhalten als Parameter aufruft.<\/p>\n<p>Die Funktion DatumTerminserie (s. Quellcode 11) befindet sich in dem Modul mdlTerminserie. Sie ist als &ouml;ffentliche Funktion deklariert, weil sie zum Anlegen der Terminserie mit dem Speichern des Gesch&auml;ftsvorfalls noch einmal aufgerufen wird. Die Funktion &uuml;berpr&uuml;ft, welches der Intervalle Tag, Woche, Monat oder Jahr verwendet wird, und berechnet anhand der entsprechenden Formel das dem aktuellen Wert der Laufvariablen i entsprechende Datum.<\/p>\n<p>Die beiden Schaltfl&auml;chen der Terminserie dienen zum Best&auml;tigen der eingegebenen Daten und zum Abbrechen. Ein Mausklick auf die Schaltfl&auml;che Abbrechen bewirkt das Schlie&szlig;en des Formulars, die eingegebenen Daten stehen dann nicht mehr zur Verf&uuml;gung. Beim Klick auf OK wird das Formular lediglich unsichtbar gemacht.<\/p>\n<p>Das hat zwei Gr&uuml;nde:<\/p>\n<li>Die Einstellungen k&ouml;nnen beim Anlegen der Gesch&auml;ftsvorf&auml;lle aus dem Formular ausgelesen und m&uuml;ssen nicht zwischengespeichert werden.<\/li>\n<li>Der Benutzer kann die Daten vor dem Anlegen der Gesch&auml;ftsvorf&auml;lle erneut bearbeiten und muss die Daten nicht neu eingeben.<\/li>\n<h2>Speichern von Gesch&auml;ftsvorf&auml;llen<\/h2>\n<p>Das Speichern von Gesch&auml;ftsvorf&auml;llen erfolgt vom Formular frmGeschaeftsvorfallDetailansicht aus &uuml;ber die Schaltfl&auml;che cmdOK. <\/p>\n<p>Die Prozedur aus Quellcode 12 &uuml;berpr&uuml;ft zun&auml;chst, ob es sich bei dem Gesch&auml;ftsvorfall um einen neuen oder einen bereits vorhandenen Datensatz handelt.<\/p>\n<p>Wenn der Datensatz bereits vorhanden ist, schlie&szlig;t die Prozedur einfach das Formular und aktualisiert gegebenenfalls den Inhalt des Formulars frmGeschaeftsvorfaelle.<\/p>\n<p>Handelt es sich um einen neuen Datensatz und ist das Formular frmTerminserien noch ge&ouml;ffnet, geht die Prozedur davon aus, dass eine Serie von Gesch&auml;ftsvorf&auml;llen anzulegen ist.<\/p>\n<p>Die Prozedur &ouml;ffnet die Tabelle tblGeschaeftsvorfaelle zweimal in Form einer Datensatzgruppe. Die erste enth&auml;lt den neu angelegten Datensatz, die zweite ist leer, da als Bedingung GeschaeftsvorfallID = 0 gesetzt wurde.<\/p>\n<p>Eine For Next-Schleife legt eine der im Formular frmTerminserien festgelegten Menge entsprechende Anzahl neuer Datens&auml;tze in der leeren Datensatzgruppe an. Dabei werden alle Feldinhalte des Gesch&auml;ftsvorfalls in der ersten Datensatzgruppe au&szlig;er dem Datum in die neuen Datens&auml;tze kopiert. Nur das Datum ist f&uuml;r jeden Datensatz anders. Es wird mit der bereits weiter oben beschriebenen Funktion DatumTerminserie ermittelt und in das entsprechende Feld eingetragen.<\/p>\n<p>Das zweite variable Feld der Terminserie ist nat&uuml;rlich die Rechnungsnummer. Sie wird automatisch innerhalb der Funktion angelegt, wenn die Option Rechnungsnummern im Dialog Optionen auf Automatisch erstellen eingestellt ist.<\/p>\n<p>Falls die Rechnungsnummern manuell angelegt werden sollen, kann der Anwender im Formular frmGeschaeftsvorfaelle alle Rechnungen anzeigen lassen, die noch keine Rechnungsnummer haben.<\/p>\n<p>Die Einnahmen-&uuml;berschussrechnung enth&auml;lt lediglich einen Bericht, der die Gesch&auml;ftsvorf&auml;lle f&uuml;r einen ausgew&auml;hlten Zeitraum und gem&auml;&szlig; vorgegebenen Gruppierungskriterien auflistet.<\/p>\n<p>Au&szlig;erdem berechnet der Bericht f&uuml;r alle Gruppierungen die Summen sowie die Gesamtsumme f&uuml;r den ausgew&auml;hlten Zeitraum. Wichtig ist nat&uuml;rlich auch die Ermittlung des resultierenden Gewinns als Netto- und Bruttowert.<\/p>\n<p>Der Bericht repAuswertungenVBA ist so aufgebaut, dass allein mit diesem Bericht diverse Darstellungsarten m&ouml;glich sind. Allerdings sind dazu auch eine Menge VBA-Anweisungen erforderlich, weshalb es hier leider nicht m&ouml;glich ist, die komplette Funktionalit&auml;t zu beschreiben.<\/p>\n<h3>Hinweis<\/h3>\n<p>Die Erstellung von formularbasierten Gruppierungen wird im Beitrag Benutzerdefiniertes Gruppieren von Berichten per VBA in der vorliegenden Ausgabe von Access im Unternehmen erl&auml;utert. <\/p>\n<p><IMG height=\"313\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic013.png\" width=\"410\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 13:  Entwurfsansicht des Formulars frmAuswertungen<\/span><\/b><\/p>\n<p><IMG height=\"121\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic014.png\" width=\"354\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 14:  Auswahl einer Auswertung<\/span><\/b><\/p>\n<pre>Private Sub Form_Current()\r\n    Me!ogrAuswertung = _        IIf(IsNull(Me.OpenArgs), 1, _        Me.OpenArgs)\r\n    Me!cboMonat = Month(Date)\r\n    Me!cboQuartal = Format(Date, \"q\")\r\n    Me!cboJahr = Year(Date)\r\n    AuswahlAnpassen\r\nEnd Sub<\/pre>\n<p><b>Quellcode 13<\/b><\/p>\n<pre>Private Function AuswahlAnpassen()\r\n    Select Case Me!ogrAuswertung\r\n        Case 1\r\n            Me.cboMonat.Enabled = True\r\n            Me.cboQuartal.Enabled = False\r\n        Case 2\r\n            Me.cboMonat.Enabled = False\r\n            Me.cboQuartal.Enabled = True\r\n        Case 3\r\n            Me.cboMonat.Enabled = False\r\n            Me.cboQuartal.Enabled = False\r\n    End Select\r\nEnd Function<\/pre>\n<p><b>Quellcode 14<\/b><\/p>\n<h2>Formular zur Festlegung derAusgabeparameter<\/h2>\n<p>Das Formular frmAuswertungen enth&auml;lt einige Steuerelemente zum Festlegen der Einstellungen f&uuml;r die Ausgabe von Auswertungen (siehe Bild 13).<\/p>\n<p>Die Steuerelemente im oberen Bereich dienen dem Ausw&auml;hlen des Zeitraums f&uuml;r die Einnahmen-&uuml;berschussrechnung.<\/p>\n<p>Die Optionsgruppe ogrAuswertung enth&auml;lt die drei Optionen Monats-, Quartals- und Jahresauswertung.<\/p>\n<p>Im linken Bereich des Formulars kann der Benutzer mit drei Kombinationsfeldern den der Auswertung entsprechenden Zeitraum genauer spezifizieren. Dazu werden je nach der gew&auml;hlten Auswertungsart die entsprechenden Kombinationsfelder aktiviert beziehungsweise deaktiviert.<\/p>\n<p>Zur Erleichterung der Eingabe werden beim &ouml;ffnen des Formulars bereits einige Voreinstellungen getroffen. Daf&uuml;r sorgt die Prozedur, die durch die Ereigniseigenschaft Beim Anzeigen des Formulars ausgel&ouml;st wird (s. Quellcode 13).<\/p>\n<p>Das Formular soll in der Regel &uuml;ber einen der drei Eintr&auml;ge des Men&uuml;punktes Auswertungen ge&ouml;ffnet werden, wobei einer der drei Werte 1, 2 oder 3 f&uuml;r die Eintr&auml;ge Monats-, Quartals- oder Jahres&uuml;bersicht an das Formular &uuml;bergeben wird (siehe Bild 14).<\/p>\n<p>Die Prozedur &uuml;berpr&uuml;ft diesen Wert und w&auml;hlt direkt die entsprechende Option der Optionsgruppe ogrAuswertungen aus. Sie setzt au&szlig;erdem die drei Kombinationsfelder auf den jeweils aktuellen Wert.<\/p>\n<p>Im letzten Schritt wird die Funktion AuswahlAnpassen aufgerufen (s. Quellcode 14). Die Funktion &uuml;berpr&uuml;ft den Wert der Optionsgruppe ogrAuswertung und aktiviert beziehungsweise deaktiviert die entsprechenden Kombinationsfelder.<\/p>\n<p>Diese Funktion wird auch bei jeder &auml;nderung der Optionsgruppe aufgerufen.<\/p>\n<pre>Private Sub GruppierungVertauschen()\r\n    Dim Hoehe As Double\r\n    Hoehe = Me.ctlEingangAusgang.Top\r\n    Me.ctlEingangAusgang.Top = Me.ctlZeitraum.Top\r\n    Me.lblEingangAusgang.Top = Me.ctlZeitraum.Top\r\n    Me.cboZeitraeume.Top = Hoehe\r\n    Me.ctlZeitraum.Top = Hoehe\r\n    Me.lblZeitraum.Top = Hoehe\r\nEnd Sub<\/pre>\n<p><b>Quellcode 15<\/b><\/p>\n<pre>Private Sub cmdAnzeigen_Click()\r\n    Dim Startdatum As String\r\n    Dim Enddatum As String\r\n    On Error GoTo cmdAnzeigen_Click_Err\r\n    Select Case Me!ogrAuswertung\r\n        Case 1\r\n            Startdatum = ISODatum(\"1.\" & Me!cboMonat & \".\" & Me!cboJahr)\r\n            Enddatum = ISODatum(LetzterTagDesMonats(\"1.\" & Me!cboMonat & \".\" _                & Me!cboJahr) & \".\" & Me!cboMonat & \".\" & Me!cboJahr)\r\n        Case 2\r\n            Startdatum = ISODatum(\"1.\" & 1 + (Me!cboQuartal - 1) * 3 & \".\" _                & Me!cboJahr)\r\n            Enddatum = ISODatum(LetzterTagDesMonats(\"1.\" & 3 + (Me!cboQuartal - 1) _               * 3 & \".\" & Me!cboJahr) & \".\" & 3 + (Me!cboQuartal - 1) * 3 & \".\" _               & Me!cboJahr)\r\n        Case 3\r\n            Startdatum = ISODatum(\"1.1.\" & Me!cboJahr)\r\n            Enddatum = ISODatum(\"31.12.\" & Me!cboJahr)\r\n    End Select\r\n    DoCmd.OpenReport \"rptAuswertungVBA\", Wherecondition:=\"Datum &gt;= \" & Startdatum _        & \" AND Datum &lt;= \" & Enddatum, View:=acViewPreview\r\n    Exit Sub\r\ncmdAnzeigen_Click_Err:\r\n    If Err.Number = 2501 Then\r\n        Resume Next\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Quellcode 16<\/b><\/p>\n<h3>Gruppierungseigenschaften einstellen<\/h3>\n<p>Im unteren Bereich des Formulars stellen Sie ein, ob keine, eine oder beide der vorgegebenen Gruppierungen verwendet werden sollen und gegebenenfalls in welcher Reihenfolge (siehe Bild 15). F&uuml;r die Gruppierung nach dem Datum kann der Benutzer zus&auml;tzlich ausw&auml;hlen, nach welchem Intervall gruppiert werden soll. Das Einstellen der Gruppierungseigenschaften enth&auml;lt eine kleine Spielerei: Die Gruppierungen k&ouml;nnen je nach Priorit&auml;t nach oben und nach unten vertauscht werden. Die entsprechenden Steuerelemente wechseln dabei ihre Pl&auml;tze. F&uuml;r das Vertauschen der Steuerelemente sorgt die Prozedur GruppierungVertauschen aus Quellcode 15.<\/p>\n<p>Ein solches Vertauschen von Steuerelementen ist nat&uuml;rlich bei mehr als zwei oder maximal drei Gruppierungsebenen nicht mehr mit vertretbarem Aufwand realisierbar. Stattdessen k&ouml;nnte ein weiteres Feld mit einer entsprechenden Priorit&auml;t verwendet werden.<\/p>\n<p><IMG height=\"91\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic015.png\" width=\"342\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 15:  Gruppierungseigenschaften in der Entwurfsansicht<\/span><\/b><\/p>\n<h2>Aufruf des Berichts rptVBA<\/h2>\n<p>Der Aufruf des Berichts erfolgt &uuml;ber die Schaltfl&auml;che mit der Beschriftung Anzeigen. Die dadurch ausgel&ouml;ste Ereignisprozedur berechnet in Abh&auml;ngigkeit von der ausgew&auml;hlten Auswertung und dem Intervall das Startdatum und Enddatum als Filterkriterien f&uuml;r die Datenherkunft des Berichts. Diese Daten werden im Parameter WhereCondition des Berichtsaufrufs &uuml;bergeben (s. Quellcode 16).<\/p>\n<h2>Der Bericht repAuswertungenVBA<\/h2>\n<p><IMG height=\"297\" src=\"..\/fileadmin\/_temp_\/{4A28030B-C60A-42B0-A9D9-9A4E7C2FCB52}\/pic016.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 16:  Entwurfsansicht des Berichts rptAuswertungenVBA<\/span><\/b><\/p>\n<p>Die in dem Dialog frmAuswertungen ausgew&auml;hlten Parameter werden zum Teil beim Aufruf des Berichts &uuml;bergeben, zum Teil werden sie innerhalb der Ereignisprozeduren der einzelnen Berichtsbereiche ausgewertet. Dabei handelt es sich um die Eigenschaften eventuell vorzunehmender Gruppierungen.<\/p>\n<p>Der Bericht ist wie in Bild 16 aufgebaut. Dort sind bereits zwei Gruppierungen voreingestellt, die durch entsprechende Ereignisprozeduren mit den vorgegebenen Eigenschaften versehen werden.<\/p>\n<h3>Hinweis<\/h3>\n<p>Wie bereits weiter oben erw&auml;hnt, wird das Einstellen der Gruppierungen in einem separaten Beitrag erl&auml;utert. Sie finden ihn unter dem Namen Benutzerdefiniertes Gruppieren von Berichten mit VBA in der vorliegenden Ausgabe von Access im Unternehmen. <\/p>\n<h3>Hinweis<\/h3>\n<p>Der Bericht enth&auml;lt au&szlig;erdem einige weitere Eigenschaften, die seine Benutzerfreundlichkeit deutlich erh&ouml;hen:<\/p>\n<li>&uuml;berpr&uuml;fung, ob &uuml;berhaupt anzuzeigende Daten vorhanden sind, und Ausgabe einer entsprechenden Meldung<\/li>\n<li>Aktivieren des Men&uuml;eintrags Drucken im Men&uuml; Datei, wenn ein Bericht angezeigt wird und umgekehrt.<\/li>\n<p>Anhand der vorliegenden L&ouml;sung k&ouml;nnen Sie bequem Rechnungsdaten eingeben und verschiedene &uuml;bersichten erstellen.<\/p>\n<p>F&uuml;r Erweiterungen ist ausreichend Platz vorhanden: Sie k&ouml;nnen beispielsweise einen weiteren Bericht erstellen, der die Einnahmen-&uuml;berschussrechnung in Form einer Auflistung der Betr&auml;ge f&uuml;r die einzelnen Kategorien angibt. Oder Sie entwickeln das Anlegen von Terminserien weiter, um auch bestehende Terminserien nachtr&auml;glich &auml;ndern zu k&ouml;nnen.<\/p>\n<p>Oder Sie f&uuml;gen eine Funktion hinzu, mit der Sie get&auml;tigte Umsatzsteuervorauszahlungen je Monat oder Quartal eingeben und diese mit der gesamten Umsatzsteuer f&uuml;r das gesamte Jahr verrechnen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Erstellung von Einnahmen-&Uuml;berschussrechnungen ist f&uuml;r die meisten Freiberufler eine Qual: Einmal im Jahr werden alle Rechnungen des abgelaufenen Jahres gesammelt, in eine handschriftliche oder vielleicht per Excel erstellte Liste eingetragen und anschlie&szlig;end ausgewertet. M&ouml;glicherweise ist es auch einmal im Monat oder im Quartal soweit, dass das Finanzamt Informationen &uuml;ber eine eventuelle Umsatzsteuervorauszahlung erwartet. In jedem Fall hilft Ihnen die im vorliegenden Beitrag beschriebene Musterl&ouml;sung weiter. Sie sorgt nicht nur f&uuml;r eine komfortable Eingabe, auch f&uuml;r die Ausgabe in Form eines entsprechenden Berichtes.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662003,66052003,44000027],"tags":[],"class_list":["post-55000122","post","type-post","status-publish","format-standard","hentry","category-662003","category-66052003","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Einnahmen-&Uuml;berschussrechnung mit Access - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Einnahmen-&Uuml;berschussrechnung mit Access\" \/>\n<meta property=\"og:description\" content=\"Die Erstellung von Einnahmen-&Uuml;berschussrechnungen ist f&uuml;r die meisten Freiberufler eine Qual: Einmal im Jahr werden alle Rechnungen des abgelaufenen Jahres gesammelt, in eine handschriftliche oder vielleicht per Excel erstellte Liste eingetragen und anschlie&szlig;end ausgewertet. M&ouml;glicherweise ist es auch einmal im Monat oder im Quartal soweit, dass das Finanzamt Informationen &uuml;ber eine eventuelle Umsatzsteuervorauszahlung erwartet. In jedem Fall hilft Ihnen die im vorliegenden Beitrag beschriebene Musterl&ouml;sung weiter. Sie sorgt nicht nur f&uuml;r eine komfortable Eingabe, auch f&uuml;r die Ausgabe in Form eines entsprechenden Berichtes.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:30+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg06.met.vgwort.de\/na\/19befc90d29f4732b068605967549e53\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"28\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Einnahmen-&Uuml;berschussrechnung mit Access\",\"datePublished\":\"2020-05-06T15:17:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/\"},\"wordCount\":4935,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/19befc90d29f4732b068605967549e53\",\"articleSection\":[\"2003\",\"5\\\/2003\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/\",\"name\":\"Einnahmen-&Uuml;berschussrechnung mit Access - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/19befc90d29f4732b068605967549e53\",\"datePublished\":\"2020-05-06T15:17:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/19befc90d29f4732b068605967549e53\",\"contentUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/19befc90d29f4732b068605967549e53\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/EinnahmenUeberschussrechnung_mit_Access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Einnahmen-&Uuml;berschussrechnung mit Access\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Einnahmen-&Uuml;berschussrechnung mit Access - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/","og_locale":"de_DE","og_type":"article","og_title":"Einnahmen-&Uuml;berschussrechnung mit Access","og_description":"Die Erstellung von Einnahmen-&Uuml;berschussrechnungen ist f&uuml;r die meisten Freiberufler eine Qual: Einmal im Jahr werden alle Rechnungen des abgelaufenen Jahres gesammelt, in eine handschriftliche oder vielleicht per Excel erstellte Liste eingetragen und anschlie&szlig;end ausgewertet. M&ouml;glicherweise ist es auch einmal im Monat oder im Quartal soweit, dass das Finanzamt Informationen &uuml;ber eine eventuelle Umsatzsteuervorauszahlung erwartet. In jedem Fall hilft Ihnen die im vorliegenden Beitrag beschriebene Musterl&ouml;sung weiter. Sie sorgt nicht nur f&uuml;r eine komfortable Eingabe, auch f&uuml;r die Ausgabe in Form eines entsprechenden Berichtes.","og_url":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:30+00:00","og_image":[{"url":"http:\/\/vg06.met.vgwort.de\/na\/19befc90d29f4732b068605967549e53","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"28\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Einnahmen-&Uuml;berschussrechnung mit Access","datePublished":"2020-05-06T15:17:30+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/"},"wordCount":4935,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/19befc90d29f4732b068605967549e53","articleSection":["2003","5\/2003","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/","url":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/","name":"Einnahmen-&Uuml;berschussrechnung mit Access - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/19befc90d29f4732b068605967549e53","datePublished":"2020-05-06T15:17:30+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#primaryimage","url":"http:\/\/vg06.met.vgwort.de\/na\/19befc90d29f4732b068605967549e53","contentUrl":"http:\/\/vg06.met.vgwort.de\/na\/19befc90d29f4732b068605967549e53"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/EinnahmenUeberschussrechnung_mit_Access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Einnahmen-&Uuml;berschussrechnung mit Access"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000122"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000122\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}