{"id":55000821,"date":"2012-02-01T00:00:00","date_gmt":"2020-05-22T21:52:59","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=821"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Postversanddateien_erstellen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/","title":{"rendered":"Postversanddateien erstellen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/f603fd0cc9f94c0fa80121d848af0cc7\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Der eine oder andere Unternehmer mag ein eigenes Kassenbuch f&uuml;hren, um Ein- und Ausgaben immer im Blick zu behalten. Da w&auml;re es doch praktisch, wenn man die anfallenden Buchungen gleich in einer Form aufbereiten k&ouml;nnte, in der sie der Steuerberater gleich weiterverarbeiten kann. Der vorliegende Beitrag zeigt, wie dies funktioniert.<\/b><\/p>\n<p><b>Von der Buchung zum Steuerberater<\/b><\/p>\n<p>Die meisten Steuerberater verwenden Produkte der Firma DATEV, um die Buchf&uuml;hrung von Unternehmen zu erstellen. Die Buchf&uuml;hrung enth&auml;lt die Buchungsvorg&auml;nge eines Jahres, die entweder in Form prall gef&uuml;llter Aktenordner zum Steuerberater gelangen, der diese dann bucht, oder in einem entsprechenden digitalen Format.<\/p>\n<p>Das setzt voraus, dass der Unternehmer die Rechnungen selbst eingegeben und eine entsprechende Datei erstellt hat. Die Daten k&ouml;nnen in Form des OBE-Formats oder des KNE\/DFE-Formats an die sogenannte Postversandschnittstelle &uuml;bergeben werden. Beide verwenden zwei oder mehrere ASCII-Dateien zur &Uuml;bertragung der Daten. Im Rahmen des vorliegenden Beitrags haben wir die Dateien des OBE-Formats analysiert und eine L&ouml;sung erstellt, mit der Sie aus den Buchungen aus einer Tabelle der Datenbank und einigen weiteren Informationen die ben&ouml;tigten Dateien <b>DV01 <\/b>und <b>DE001<\/b>, <b>DE002 <\/b>und so weiter erstellen k&ouml;nnen.<\/p>\n<p>Die Datei <b>DV01 <\/b>ist die Verwaltungsdatei, die erstens einige grundlegende Informationen enth&auml;lt und zweitens Verwaltungsinformationen zu den <b>DE&#8230;<\/b>-Dateien mit den eigentlichen Buchungss&auml;tzen.<\/p>\n<p>Die Datendateien (<b>DE001<\/b>, <b>DE002<\/b>&#8230;) enthalten sogenannte Vorlaufdaten und die eigentlichen Buchungsdaten. Schlie&szlig;lich folgt noch die Summe der Ums&auml;tze.<\/p>\n<p>Die L&ouml;sung dieses Beitrags verwendet nur eine <b>DE&#8230;<\/b>-Datei, die bis zu 9.999 Datens&auml;tze fassen kann.<\/p>\n<p><b>Aufbau der Verwaltungsdatei DV01<\/b><\/p>\n<p>Die Verwaltungsdatei enth&auml;lt allgemeine Informationen und wird nur einmal je Satz erstellt &#8211; im Gegensatz zur Datendatei, die je nach Datenmenge auf mehrere Dateien aufgeteilt werden kann. Die Datei sieht in hexadezimaler Darstellung beispielsweise wie in Bild 1 aus.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/Postversanddatei-web-images\/pic001.png\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Beispiel f&uuml;r den Aufbau der Datei DV01<\/span><\/b><\/p>\n<p>Die Verwaltungsdatei wird wie folgt aufgebaut:<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>Datentr&auml;gernummer<\/b>: dreistellige Nummer mit drei folgenden Leerzeichen, zum Beispiel <b>A01<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Beraternummer<\/b>: siebenstellige Nummer, gegebenenfalls mit f&uuml;hrenden Nullen<\/li>\n<li class=\"aufz-hlung\"><b>Beratername<\/b>: neun Zeichen<\/li>\n<li class=\"aufz-hlung\">Leerzeichen<\/li>\n<li class=\"aufz-hlung\"><b>Anzahl Datendateien<\/b>: zwei Zeichen, gegebenenfalls durch folgende Nullen aufgef&uuml;llt (k&ouml;nnen bei nur einer Datei offensichtlich durch zwei Leerzeichen ersetzt werden)<\/li>\n<li class=\"aufz-hlung\"><b>Letzte Datendateinummer<\/b>: Nummer der letzten Datei, gegebenenfalls durch folgende Nullen aufgef&uuml;llt (k&ouml;nnen bei nur einer Datei offensichtlich durch zwei Leerzeichen ersetzt werden)<\/li>\n<li class=\"aufz-hlung\">F&uuml;llzeichen (37 Null-Bytes)<\/li>\n<\/ul>\n<p>Danach folgen je Vorlauf einmal die folgenden Daten:<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>Verarbeitungskennzeichen <\/b>(V: zu verarbeiten, *: nicht zu verarbeiten, L: gel&ouml;scht)<\/li>\n<li class=\"aufz-hlung\"><b>Dateinummer<\/b>: Nummer der jeweiligen Vorlauf-Datei (bei DE001 etwa hexadezimal <b>0100<\/b>, bei einstelligen Zahlen wird eine Null angeh&auml;ngt)<\/li>\n<li class=\"aufz-hlung\"><b>Anwendungsnummer <\/b>(in der Regel <b>11<\/b>)<\/li>\n<li class=\"aufz-hlung\"><b>Namensk&uuml;rzel<\/b>: zwei Zeichen, frei w&auml;hlbar<\/li>\n<li class=\"aufz-hlung\"><b>Beraternummer<\/b>: siebenstellige Beraternummer<\/li>\n<li class=\"aufz-hlung\"><b>Mandantennummer<\/b>: f&uuml;nfstellige Mandantennummer<\/li>\n<li class=\"aufz-hlung\"><b>Abrechnungsnummer<\/b>: sechsstellige Abrechnungsnummer<\/li>\n<li class=\"aufz-hlung\"><b>Startdatum<\/b>: <b>ttmmjj<\/b>, mit vier f&uuml;hrenden Nullen<\/li>\n<li class=\"aufz-hlung\"><b>Enddatum<\/b>: <b>ttmmjj<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Primanota-Seite<\/b>: <b>001<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Passwort<\/b>: vierstelliges Passwort<\/li>\n<\/ul>\n<p><b>Aufbau der Datendateien DE001, DE002 &#8230;<\/b><\/p>\n<p>Die Datendatei sieht im Hex-Editor wie in Bild 2 aus. Jede Datendatei enth&auml;lt zun&auml;chst einige allgemeine Informationen (insgesamt 80 Zeichen):<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/Postversanddatei-web-images\/pic002.png\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Beispiel f&uuml;r die Datei DE001 mit den eigentlichen Buchungen<\/span><\/b><\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>Vorlaufbeginn\/Kennung<\/b>: Sonderzeichen Chr(24) und Chr(29)<\/li>\n<li class=\"aufz-hlung\"><b>Versionsnummer<\/b>: <b>1<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Datentr&auml;ger-Nummer<\/b>: zum Beispiel <b>A01<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Anwendungsnummer<\/b>: <b>11<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Namensk&uuml;rzel<\/b>: zwei Zeichen, frei w&auml;hlbar<\/li>\n<li class=\"aufz-hlung\"><b>Beraternummer<\/b>: siebenstellige Beraternummer<\/li>\n<li class=\"aufz-hlung\"><b>Mandantennummer<\/b>: f&uuml;nfstellige Mandantennummer<\/li>\n<li class=\"aufz-hlung\"><b>Abrechnungsnummer<\/b>: sechsstellige Abrechnungsnummer<\/li>\n<li class=\"aufz-hlung\"><b>Startdatum<\/b>: <b>ttmmjj<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Enddatum<\/b>: <b>ttmmjj<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Primanota-Seite<\/b>: <b>001<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Passwort<\/b>: Vierstelliges Passwort<\/li>\n<li class=\"aufz-hlung\"><b>Anwendungsinfo<\/b>: Anwendung, welche die Datei erstellt hat (bei <b>SELF.DLL<\/b>: <b>SELF ID: 99999<\/b>, sechzehnstellig, mit Leerzeichen auff&uuml;llen)<\/li>\n<li class=\"aufz-hlung\"><b>Input-Info<\/b>: 16 Leerzeichen<\/li>\n<li class=\"aufz-hlung\"><b>Satzende<\/b>: <b>y<\/b><\/li>\n<\/ul>\n<p><b>Aufbau einer Buchungszeile<\/b><\/p>\n<p>Eine Buchungszeile wird in der Postversanddatei in der vorliegenden L&ouml;sung wie folgt zusammengesetzt (m&ouml;glicherweise ben&ouml;tigen Sie weitere Felder &#8211; Informationen erhalten Sie im <b>Schnittstellen-Entwicklungsleitfaden f&uuml;r das DATEV-Format<\/b>, den Sie unter <b>http:\/\/www.datev.de\/portal\/ShowPage.dopid=dpi&amp;nid=115908&amp;stat_Mparam=int_url_datev_datevformat <\/b>bestellen k&ouml;nnen):<\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>Umsatz<\/b>: Zeichen <b>+ <\/b>oder <b>&#8211; <\/b>gefolgt vom Umsatz in Cent, f&uuml;r 34,90 EUR also beispielsweise <b>+3490<\/b><\/li>\n<li class=\"aufz-hlung\"><b>Gegenkonto<\/b>: Buchstabe <b>a<\/b>, ein Zeichen f&uuml;r den Berichtigungsschl&uuml;ssel, ein Zeichen f&uuml;r den Steuerschl&uuml;ssel und maximal f&uuml;nf Zeichen f&uuml;r die Kontonummer.<\/li>\n<li class=\"aufz-hlung\"><b>Belegfeld 1<\/b>: Buchstabe <b>b <\/b>und Rechnungsnummer, maximal sechs Stellen<\/li>\n<li class=\"aufz-hlung\"><b>Datum<\/b>: Buchstabe <b>d<\/b>, gefolgt vom Datum im Format <b>ttmm<\/b>. F&uuml;hrende Nullen beim Tag werden nicht ber&uuml;cksichtigt.<\/li>\n<li class=\"aufz-hlung\"><b>Konto<\/b>: Buchstabe <b>e <\/b>gefolgt vom Konto (maximal f&uuml;nfstellig)<\/li>\n<li class=\"aufz-hlung\"><b>Buchungstext<\/b>: maximal 30 Zeichen<\/li>\n<li class=\"aufz-hlung\"><b>Satzende<\/b>: Buchstabe <b>y<\/b><\/li>\n<\/ul>\n<p>Es kann noch weitere Informationen geben, wenn beispielsweise Steuerkonten nicht automatisch von der Software des Steuerberaters festgelegt werden. <\/p>\n<p>Dies sollte zum Beispiel f&uuml;r Konten wie <b>8300 (Erl&ouml;se 7% USt<\/b>) oder <b>8400 <\/b>(<b>Erl&ouml;se 19% USt<\/b>) der Fall sein.<\/p>\n<p><b>Speichern der f&uuml;r die Erstellung notwendigen Daten<\/b><\/p>\n<p>In der Beispieldatenbank speichern wir die Daten in zwei Tabellen: <b>tblPostversand <\/b>und <b>tblBuchungen<\/b>.<\/p>\n<p>Die Tabelle <b>tblPostversand<\/b> enth&auml;lt die Informationen f&uuml;r die Erstellung verschiedener Postversanddateien und sieht im Entwurf wie in Bild 3 aus.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/Postversanddatei-web-images\/pic003.png\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Die Tabelle tblPostversand in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Die Tabelle zum Speichern der Buchungen entwerfen Sie wie in Bild 4. Sie enth&auml;lt unter anderem zwei Fremdschl&uuml;sselfelder zu einer Hilfstabelle namens <b>tblKonten<\/b>, die alle Konten des Kontenrahmens enth&auml;lt. Wichtig f&uuml;r die hier vorgestellte L&ouml;sung sind die ersten sieben Felder, also diese:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/Postversanddatei-web-images\/pic004.png\" alt=\"pic004.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Die Tabelle tblBuchungen in der Entwurfsansicht<\/span><\/b><\/p>\n<ul>\n<li class=\"aufz-hlung\"><b>BuchungID<\/b>: Prim&auml;rschl&uuml;sselfeld der Tabelle<\/li>\n<li class=\"aufz-hlung\"><b>Belegnummer<\/b>: Nummer des Belegs<\/li>\n<li class=\"aufz-hlung\"><b>Buchungsdatum<\/b>: Datum der Buchung<\/li>\n<li class=\"aufz-hlung\"><b>Buchungstext<\/b>: bis zu 30 Zeichen langer Text<\/li>\n<li class=\"aufz-hlung\"><b>Umsatz<\/b>: Umsatz ohne Vorzeichen<\/li>\n<li class=\"aufz-hlung\"><b>KontoID<\/b>: Fremdschl&uuml;sselfeld zur Tabelle <b>tblKonten <\/b>f&uuml;r das Konto<\/li>\n<li class=\"aufz-hlung\"><b>GegenkontoID<\/b>: Fremdschl&uuml;sselfeld zur Tabelle <b>tblKonten <\/b>f&uuml;r das Gegenkonto<\/li>\n<\/ul>\n<p>Die Tabelle mit einigen Beispieldatens&auml;tzen finden Sie in Bild 5.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/Postversanddatei-web-images\/pic005.png\" alt=\"pic005.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5: Die Tabelle tblBuchungen mit einigen Beispieldatens&auml;tzen<\/span><\/b><\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Eingabe der Buchungen<\/p>\n<p><!--30percent--><\/p>\n<p>F&uuml;r die Eingabe der Buchungen k&ouml;nnen Sie das bereits im Beitrag <b>Kassenbuch <\/b>(<b>http:\/\/www.access-im-unternehmen.de\/486<\/b>) vorgestellte Formular einsetzen. Die Daten f&uuml;r die Postversanddateien geben Sie in ein einfaches Formular ein, das auf der Tabelle <b>tblPostversand <\/b>als Datenherkunft aufbaut (s. Bild 6). Es enth&auml;lt eine Schaltfl&auml;che namens <b>cmdErstellen<\/b>, die den Prozess zum Erstellen der beiden Postversanddateien startet. Die Steuerung dieses Vorgangs erfolgt innerhalb der dadurch ausgel&ouml;sten Ereignisprozedur:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/Postversanddatei-web-images\/pic006.png\" alt=\"pic006.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6: Eingabe der Postversanddaten und Start der Erstellung der Dateien<\/span><\/b><\/p>\n<pre>Private Sub cmdErstellen_Click()\r\n    On Error Resume Next\r\n    MkDir CurrentProject.Path &amp; &quot;\\&quot; &amp; Me!Unterverzeichnis\r\n    Kill CurrentProject.Path &amp; &quot;\\&quot; &amp; Me!Unterverzeichnis &amp; &quot;\\DE001&quot;\r\n    Kill CurrentProject.Path &amp; &quot;\\&quot; &amp; Me!Unterverzeichnis &amp; &quot;\\DV01&quot;\r\n    On Error GoTo 0\r\n    Call VerwaltungsdateiSchreiben\r\n    Call DatendateiSchreiben\r\nEnd Sub<\/pre>\n<p>Diese Prozedur erstellt zun&auml;chst ein Unterverzeichnis unterhalb der aktuellen Access-Anwendung, in das die beiden Dateien <b>DV01 <\/b>und <b>DE001 <\/b>geschrieben werden sollen. Danach l&ouml;scht sie eventuell bereits vorhandene Dateien. Anschlie&szlig;end ruft sie zwei weitere Prozeduren auf, die erst die Datei <b>DV01 <\/b>und dann die Datei <b>DE001 <\/b>schreiben.<\/p>\n<p><b>Erzeugen der Verwaltungsdatei DV01<\/b><\/p>\n<p>Diese Aufgabe &uuml;bernimmt die Prozedur <b>VerwaltungsdateiSchreiben<\/b> aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-36-anchor\">Listing 1<\/a><\/span>.<\/p>\n<p class=\"listingueberschrift\">Listing 1: Schreiben der Verwaltungsdatei<\/p>\n<pre>Private Sub VerwaltungsdateiSchreiben()\r\n    Dim strVerwaltungsdatei As String\r\n    Dim strBeratername As String\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; &quot;A01 &quot; ''1-6\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Format(Me!Berater, &quot;0000000&quot;) ''7-13\r\n    strBeratername = Left(Me!Beratername, 9) ''14-22\r\n    strBeratername = strBeratername &amp; Space(9 - Len(strBeratername) + 1)\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; strBeratername\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Chr(1) &amp; Chr(0) &amp; Chr(1) &amp; Chr(0)\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Space(37)\r\n    ''Informationen zu den Datendateien\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; &quot;V&quot; ''(1) V f&uuml;r &quot;zu verarbeiten&quot;\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Chr(1) &amp; Chr(0) ''(2-3) Dateinummer\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; &quot;11&quot; ''(4-5) Anwendungsnummer\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Vorlaufdaten(True)\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Chr(&amp;H14) &amp; Chr(&amp;H0) ''(49-50) Letzte Blocknummer\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Chr(&amp;HBD) &amp; Chr(&amp;H0) ''(51-52) Letzte Blockposition\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Chr(&amp;H1) &amp; Chr(&amp;H0) ''(53-54) Letzte Primanotaseite\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Space(8) ''(55-62) Leerzeichen\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Chr(&amp;H20) ''(63) Leerzeichen: Keine Vorlaufkorrektur\r\n    strVerwaltungsdatei = strVerwaltungsdatei &amp; Chr(&amp;H31) ''(64) Schl&uuml;ssel f&uuml;r Zielanwendung\r\n    Open CurrentProject.Path &amp; &quot;\\&quot; &amp; Me!Unterverzeichnis &amp; &quot;\\DV01&quot; For Binary As #1\r\n    Put #1, , strVerwaltungsdatei\r\n    Close #1\r\nEnd Sub<\/pre>\n<p>Die Prozedur tr&auml;gt alle notwendigen Daten in einer Textvariablen namens <b>strVerwaltungsdatei <\/b>zusammen. Zwischendurch wird eine weitere Funktion namens <b>Vorlaufdaten <\/b>mit dem Parameter <b>True <\/b>aufgerufen.<\/p>\n<p>Die Funktion <b>Vorlaufdaten <\/b>liefert eine Reihe weiterer Werte, die in der Datei <b>DV01 <\/b>ebenso wie in der Datei <b>DE001 <\/b>in fast identischer Form ben&ouml;tigt werden. Der einzige Unterschied ist, dass das Startdatum in der Datei <b>DV01 <\/b>mit vier f&uuml;hrenden Nullen angegeben werden muss.<\/p>\n<p>Diesen Umstand ber&uuml;cksichtigt die Funktion <b>Vorlaufdaten<\/b>, indem sie den Parameter <b>bolVerwaltungsdatei <\/b>auswertet und im Falle des Wertes <b>True <\/b>die vier Nullen an entsprechender Stelle einf&uuml;gt.<\/p>\n<p>Wenn die gleiche Funktion sp&auml;ter beim Zusammenstellen der Datendatei erneut aufgerufen wird, geschieht das mit dem Wert <b>False <\/b>f&uuml;r den Parameter <b>bolVerwaltungsdatei<\/b>.<\/p>\n<p>Die Funktion <b>Vorlaufdaten <\/b>finden Sie in <span class=\"verweis-ohneumbruch\"><a href=\"#anker-43-anchor\">Listing 2<\/a><\/span>.<\/p>\n<p class=\"listingueberschrift\">Listing 2: Zusammenstellen der Vorlaufdaten<\/p>\n<pre>Private Function Vorlaufdaten(bolVerwaltungsdatei As Boolean) As String\r\n    Dim strVorlaufdaten As String\r\n    strVorlaufdaten = strVorlaufdaten &amp; Me!DFVKennzeichen ''(9-10) Namensk&uuml;rzel\r\n    strVorlaufdaten = strVorlaufdaten &amp; Format(Me!Berater, &quot;0000000&quot;) ''(11-17) Beraternummer\r\n    strVorlaufdaten = strVorlaufdaten &amp; Format(Me!Mandant, &quot;00000&quot;) ''(18-22) Mandantennummer\r\n    strVorlaufdaten = strVorlaufdaten &amp; Format(Me!Abrechnungsnummer, &quot;000000&quot;) ''(23-28) Abrechnungsnummer\r\n    If bolVerwaltungsdatei Then\r\n        strVorlaufdaten = strVorlaufdaten &amp; &quot;0000&quot;\r\n    End If\r\n    strVorlaufdaten = strVorlaufdaten &amp; Format(Me!DatumVon, &quot;ddmmyy&quot;) ''(29-34) Datum von\r\n    strVorlaufdaten = strVorlaufdaten &amp; Format(Me!DatumBis, &quot;ddmmyy&quot;) ''(35-40) Datum bis\r\n    strVorlaufdaten = strVorlaufdaten &amp; Me!PNSeite ''(41-43) Primanotaseite\r\n    strVorlaufdaten = strVorlaufdaten &amp; Me!Passwort ''(44-47) Passwort\r\n    Vorlaufdaten = strVorlaufdaten\r\nEnd Function<\/pre>\n<p>Nach dem Zusammenstellen der ben&ouml;tigten Daten in Form einer 64 Byte langen Zeichenkette wird die Datei <b>DV01 <\/b>im angegebenen Unterverzeichnis erstellt und mit der Zeichenkette gef&uuml;llt.<\/p>\n<p><b>Erstellen der Datendatei<\/b><\/p>\n<p>Die Datendatei <b>DE001 <\/b>wird auf &auml;hnliche Weise erstellt, allerdings ist der verwendete Algorithmus etwas komplexer. Einer der wichtigsten Bestandteile ist der Aufruf der Funktion <b>BuchungenEinlesen<\/b> (s. <span class=\"verweis-ohneumbruch\"><a href=\"#anker-44-anchor\">Listing 3<\/a><\/span>). Diese Funktion durchl&auml;uft alle Datens&auml;tze der Tabelle <b>tblBuchungen<\/b>, allerdings nur solche, die in dem im aktuellen Datensatz des Formulars <b>frmPostversand <\/b>angegebenen Zeitraum liegen. Die Funktion erwartet zwei Parameter, die sie in gef&uuml;lltem Zustand an die aufrufende Prozedur zur&uuml;ckliefert.<\/p>\n<p class=\"listingueberschrift\">Listing 3: Einlesen der Buchungen<\/p>\n<pre>Private Function BuchungenEinlesen(arrBuchungen() As String, curUmsatz As Currency)\r\n    Dim db As DAO.Database\r\n    Dim rst As DAO.Recordset\r\n    Dim strBuchungssatz As String\r\n    Dim i As Integer\r\n    Set db = CurrentDb\r\n    Set rst = db.OpenRecordset(&quot;SELECT * FROM tblBuchungen WHERE Buchungsdatum &gt;= &quot; _\r\n        &amp; SQLDatum(Me!DatumVon) &amp; &quot; AND Buchungsdatum &lt;= &quot; &amp; SQLDatum(Me!DatumBis) _\r\n        &amp; &quot; ORDER BY Buchungsdatum, BuchungID&quot;, dbOpenDynaset)\r\n    Do While Not rst.EOF\r\n        strBuchungssatz = &quot;&quot;\r\n        If rst!Umsatz &gt; 0 Then\r\n            strBuchungssatz = strBuchungssatz &amp; &quot;+&quot; ''(1) Umsatz-Vorzeichen (+\/-)\r\n            strBuchungssatz = strBuchungssatz &amp; rst!Umsatz * 100 ''Umsatz in Cent\r\n            strBuchungssatz = strBuchungssatz &amp; &quot;a&quot; &amp; rst!KontoID ''Gegenkonto\r\n            strBuchungssatz = strBuchungssatz &amp; &quot;b&quot; &amp; rst!Belegnummer ''Belegnummer max. 6 Zeichen\r\n            strBuchungssatz = strBuchungssatz &amp; &quot;d&quot; &amp; Format(rst!Buchungsdatum, &quot;dmm&quot;) ''dmm\r\n            strBuchungssatz = strBuchungssatz &amp; &quot;e&quot; &amp; rst!GegenkontoID ''Konto\r\n            strBuchungssatz = strBuchungssatz &amp; Chr(&amp;H1E) &amp; rst!Buchungstext &amp; Chr(&amp;H1C) ''Text\r\n            strBuchungssatz = strBuchungssatz &amp; &quot;y&quot; ''Satzende\r\n            ReDim Preserve arrBuchungen(i)\r\n            arrBuchungen(i) = strBuchungssatz\r\n            i = i + 1\r\n            curUmsatz = curUmsatz + rst!Umsatz\r\n        End If\r\n        rst.MoveNext\r\n    Loop\r\nEnd Function<\/pre>\n<p>Der erste ist ein String-Array, der alle Buchungen im entsprechenden Format enth&auml;lt, der zweite die Gesamtsumme der get&auml;tigten Ums&auml;tze.<\/p>\n<p>Die Routine erstellt zun&auml;chst ein <b>Database<\/b>-Objekt mit einem Verweis auf die aktuelle Datenbank und erstellt dann ein <b>Recordset<\/b>-Objekt mit den entsprechenden Buchungsdatens&auml;tzen.<\/p>\n<p>Diese durchl&auml;uft die Routine in einer <b>Do While<\/b>-Schleife. Zu Beginn wird eine Variable namens <b>strBuchungssatz<\/b>, die f&uuml;r jeden Datensatz neu gef&uuml;llt und anschlie&szlig;end zum Array hinzugef&uuml;gt wird, geleert. F&uuml;r jeden Buchungsdatensatz mit einem Umsatz gr&ouml;&szlig;er als 0 wird die Variable <b>strBuchungssatz <\/b>anschlie&szlig;end gef&uuml;llt. Zun&auml;chst wird das Vorzeichen, dann der Umsatz, das Gegenkonto (das laut DATEV-Logik eigentlich das Konto ist), die Belegnummer, das Buchungsdatum im Format <b>dmm<\/b>, das Konto (das aus dem Feld <b>Gegenkonto <\/b>eingelesen wird), der Buchungstext und schlie&szlig;lich der Buchstabe <b>y<\/b> als Kennzeichnung f&uuml;r das Satzende eingelesen. Ein Buchungssatz sieht schlie&szlig;lich etwa wie folgt aus: <b>+3490a8300b4d1805e1371aboy<\/b>.<\/p>\n<p>Das Array <b>arrBuchungen <\/b>wird um ein Feld vergr&ouml;&szlig;ert, das anschlie&szlig;end mit dem Inhalt von <b>strBuchung <\/b>gef&uuml;llt wird. Au&szlig;erdem wird der Wert der Variablen <b>curUmsatz <\/b>um den Umsatz der aktuellen Buchung erh&ouml;ht.<\/p>\n<p>Die zweite Funktion, die beim Zusammenstellen der Datei <b>DE001<\/b> aufgerufen wird, hei&szlig;t <b>VollvorlaufEinlesen<\/b> und stellt die allgemeinen Informationen f&uuml;r die aktuelle Datei zusammen (s. <span class=\"verweis-ohneumbruch\"><a href=\"#anker-45-anchor\">Listing 4<\/a><\/span>). Hier kommt auch wieder die bereits vorgestellte Funktion <b>Vorlaufdaten <\/b>zum Einsatz.<\/p>\n<p class=\"listingueberschrift\">Listing 4: Vollvorlauf einlesen<\/p>\n<pre>Private Function VollvorlaufEinlesen(strVollvorlauf As String)\r\n    Dim lngLaenge As Long\r\n    strVollvorlauf = strVollvorlauf &amp; Chr(29) &amp; Chr(24) ''(1-2) Vorlaufbeginn, Kennung neuer Vorlauf\r\n    strVollvorlauf = strVollvorlauf &amp; 1 ''(3) Versionsnummer\r\n    strVollvorlauf = strVollvorlauf &amp; Me!Datentraegernummer ''(4-6) Datentr&auml;gernummer\r\n    strVollvorlauf = strVollvorlauf &amp; &quot;11&quot; ''(7-8) Anwendungsnummer\r\n    strVollvorlauf = strVollvorlauf &amp; Vorlaufdaten(False)\r\n    strVollvorlauf = strVollvorlauf &amp; &quot;aiuOBEPostversand&quot; ''(48-L&auml;nge) Anwendungsinfo\r\n    lngLaenge = Len(strVollvorlauf)\r\n    If lngLaenge &lt; 80 Then\r\n        strVollvorlauf = strVollvorlauf &amp; Space(80 - lngLaenge - 1) ''(Rest bis 63) Leerzeichen\r\n    End If\r\n    strVollvorlauf = strVollvorlauf &amp; &quot;y&quot; ''(80) Satzende\r\nEnd Function<\/pre>\n<p>Fehlt noch die Hauptfunktion, welche die Vollvorlaufdaten und die Buchungen zusammenf&uuml;hrt. Diese hei&szlig;t <b>DatendateiSchreiben<\/b> und ist in <span class=\"verweis-ohneumbruch\"><a href=\"#anker-46-anchor\">Listing 5<\/a><\/span> zu finden.<\/p>\n<p class=\"listingueberschrift\">Listing 5: Schreiben der Datendatei DE001<\/p>\n<pre>Private Sub DatendateiSchreiben()\r\n    Dim strVollvorlauf As String\r\n    Dim arrBuchungen() As String\r\n    Dim curUmsatz As Currency\r\n    Dim strBuchungssatz As String\r\n    Dim i As Integer\r\n    Dim intBuchungssatz As Integer\r\n    Dim intLauf As Integer\r\n    Dim strUmsatz As String\r\n    ''Datendateien\r\n    VollvorlaufEinlesen strVollvorlauf\r\n    Open CurrentProject.Path &amp; &quot;\\&quot; &amp; Me!Unterverzeichnis &amp; &quot;\\DE001&quot; For Binary As #1\r\n    BuchungenEinlesen arrBuchungen, curUmsatz\r\n    i = 0\r\n    ''Erster Satz\r\n    strBuchungssatz = strVollvorlauf\r\n    Do While Len(strBuchungssatz) + Len(arrBuchungen(i)) &lt; 251\r\n        strBuchungssatz = strBuchungssatz &amp; arrBuchungen(i)\r\n        i = i + 1\r\n    Loop\r\n    strBuchungssatz = strBuchungssatz &amp; String(256 - Len(strBuchungssatz), Chr(0))\r\n    Put #1, , strBuchungssatz\r\n    intBuchungssatz = 1\r\n    ''Folges&auml;tze\r\n    strBuchungssatz = &quot;&quot;\r\n    For intLauf = i To UBound(arrBuchungen)\r\n        If Len(strBuchungssatz) + Len(arrBuchungen(intLauf)) &lt; 251 Then\r\n            strBuchungssatz = strBuchungssatz &amp; arrBuchungen(intLauf)\r\n        Else\r\n            strBuchungssatz = strBuchungssatz &amp; String(256 - Len(strBuchungssatz), Chr(0))\r\n            Put #1, 1 + intBuchungssatz * 256, strBuchungssatz\r\n            intBuchungssatz = intBuchungssatz + 1\r\n            strBuchungssatz = arrBuchungen(intLauf)\r\n        End If\r\n    Next intLauf\r\n    ''Letzter Satz\r\n    strUmsatz = &quot;x&quot; &amp; curUmsatz * 100 &amp; &quot;yz&quot;\r\n    If Len(strBuchungssatz) + Len(strUmsatz) &lt; 251 Then\r\n        strBuchungssatz = strBuchungssatz &amp; strUmsatz\r\n    Else\r\n        intLauf = intLauf + 1\r\n        strBuchungssatz = strBuchungssatz &amp; String(256 - Len(strBuchungssatz), Chr(0))\r\n        Put #1, 1 + intBuchungssatz * 256, strBuchungssatz\r\n        intBuchungssatz = intBuchungssatz + 1\r\n        strBuchungssatz = strUmsatz\r\n    End If\r\n    intLauf = intLauf + 1\r\n    strBuchungssatz = strBuchungssatz &amp; String(256 - Len(strBuchungssatz), Chr(0))\r\n    Put #1, 1 + intBuchungssatz * 256, strBuchungssatz\r\n    Close #1\r\nEnd Sub<\/pre>\n<p>Die Prozedur beginnt mit dem Aufruf der Funktion <b>VollvorlaufEinlesen<\/b>, welche die allgemeinen Daten der Datendatei einliest und in der Variablen <b>strVollvorlauf <\/b>zur&uuml;ckliefert.<\/p>\n<p>Gleich danach wird bereits die Datei <b>DE001 <\/b>f&uuml;r das bin&auml;re Schreiben der Daten im angegebenen Verzeichnis erstellt. Der Aufruf der Funktion <b>BuchungenEinlesen <\/b>liefert das Array mit den einzelnen Buchungss&auml;tzen und die Summe der Ums&auml;tze zur&uuml;ck.<\/p>\n<p>Nun beginnt ein Ablauf, der vom Zusammenstellen von Zeichenketten bestimmt ist, die nicht l&auml;nger als 250 Zeichen lang sein d&uuml;rfen. Diese Zeichenketten werden jeweils in der Variablen <b>strBuchungssatz <\/b>gespeichert.<\/p>\n<p>Die fehlenden sechs Zeichen werden jeweils mit dem Null-Zeichen (<b>Chr(0)<\/b>) aufgef&uuml;llt. Der Sinn dieser Aktion ist, m&ouml;glichst viele Buchungen in eine Zeile der Datendatei zu packen, die genau 256 Zeichen lang sein darf.<\/p>\n<p>Die erste Zeile ist gleich eine Ausnahme, denn sie beginnt nicht mit einem Buchungssatz, sondern nimmt den Inhalt der Variablen <b>strVollvorlauf <\/b>auf &#8211; also die allgemeinen Angaben zur Datendatei.<\/p>\n<p>Danach werden in einer <b>Do While<\/b>-Schleife so lange Elemente des Arrays <b>arrBuchungen <\/b>durchlaufen, bis das Anh&auml;ngen des n&auml;chsten Elements die zul&auml;ssige L&auml;nge der Zeichenkette von 250 Zeichen &uuml;berschreiten w&uuml;rde. W&uuml;rde die kritische L&auml;nge der Zeichenkette &uuml;berschritten, ist die Abbruchbedingung der <b>Do While<\/b>-Schleife erf&uuml;llt.<\/p>\n<p>Beim Durchlaufen dieser Schleife wird die Laufvariable <b>i <\/b>f&uuml;r die Elemente des Arrays <b>arrBuchungen <\/b>jeweils um <b>1 <\/b>erh&ouml;ht.<\/p>\n<p>Die Zeichenkette wird dann noch bis zu einer L&auml;nge von 256 Zeichen mit Null-Zeichen (<b>Chr(0)<\/b>) aufgef&uuml;llt und der Z&auml;hler <b>intBuchungssatz <\/b>auf den Wert <b>1 <\/b>eingestellt. Schlie&szlig;lich landen die ersten 256 Zeichen in der bin&auml;r ge&ouml;ffneten Datei <b>DE001<\/b>.<\/p>\n<p>Danach folgen, soweit vorhanden, die weiteren im Array <b>arrBuchungen <\/b>enthaltenen Buchungss&auml;tze. Eine <b>For&#8230;Next<\/b>-Schleife beginnt bei der Position <b>i <\/b>und l&auml;uft bis zur Obergrenze des Arrays.<\/p>\n<p>Auch hier wird die Variable <b>strBuchungssatz <\/b>so lange mit Buchungen aus dem Array <b>arrBuchungen <\/b>gef&uuml;llt, bis das n&auml;chste Element die L&auml;nge von 250 Zeichen der Zeichenkette <b>strBuchungssatz <\/b>&uuml;berschreiten w&uuml;rde. In diesem Fall f&uuml;llt die Prozedur <b>strBuchungssatz <\/b>mit Null-Zeichen auf 256 Zeichen auf und schreibt die Zeichenkette in die Datei <b>DE001<\/b>. Die Variable <b>strBuchungssatz<\/b> wird dann mit dem Element aus <b>arrBuchungen <\/b>gef&uuml;llt, das gerade nicht mehr in die Zeichenkette hineinpasste &#8211; das Zusammenstellen beginnt also erneut.<\/p>\n<p>In den meisten F&auml;llen bleibt am Ende eine Zeichenfolge von weniger als 250 Zeichen &uuml;brig, die nicht innerhalb der Schleife gef&uuml;llt und in die Datei <b>DE001 <\/b>geschrieben wird.<\/p>\n<p>Diese soll im Anschluss an die Schleifendurchl&auml;ufe noch um die Summe der Ums&auml;tze erg&auml;nzt, mit Null-Zeichen gef&uuml;llt und schlie&szlig;lich auch noch in die Datei geschrieben werden. Gegebenenfalls passt der Gesamtumsatz gerade eben nicht mehr in die 250 Zeichen &#8211; dann wird erst die Zeile mit den Buchungen aufgef&uuml;llt und in die Datei geschrieben und dann der ebenfalls mit Null-Zeichen aufgef&uuml;llte Gesamtumsatz.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Die hier vorgestellte L&ouml;sung bildet nur einen von vielen m&ouml;glichen F&auml;llen zur Erstellung einer Postversanddatei ab. Sollten Sie jedoch eine Postversanddatei f&uuml;r Ihren Fall vorliegen haben, k&ouml;nnen Sie die hier verwendeten Techniken mit hoher Wahrscheinlichkeit an Ihre Gegebenheiten anpassen. Tipp: Verwenden Sie einen Hex-Editor, um Dateien wie <b>DV01 <\/b>oder <b>DE001 <\/b>zu analysieren.<\/p>\n<p>Wenn auch kostenpflichtig, ist auch die Anschaffung des Schnittstellen-Entwicklungsleitfadens f&uuml;r das DATEV-Format auf <b>http:\/\/www.datev.de\/portal\/ShowPage.dopid=dpi&amp;nid=115908&amp;stat_Mparam=int_url_datev_datevformat <\/b>zu empfehlen. Die Kosten von aktuell 250 EUR sind schnell wieder reingeholt, wenn Sie &uuml;berlegen, wie viel Zeit Sie mit einer vollst&auml;ndigen Dokumentation des Dateiformats gegen&uuml;ber der experimentellen Ermittlung der Daten sparen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Postversanddatei.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{3CB6D08C-C70B-4682-AA62-FCCF8854B729}\/aiu_821.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der eine oder andere Unternehmer mag ein eigenes Kassenbuch f&uuml;hren, um Ein- und Ausgaben immer im Blick zu behalten. Da w&auml;re es doch praktisch, wenn man die anfallenden Buchungen gleich in einer Form aufbereiten k&ouml;nnte, in der sie der Steuerberater gleich weiterverarbeiten kann. Der vorliegende Beitrag zeigt, wie dies funktioniert.<\/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":[66012012,662012,44000026],"tags":[],"class_list":["post-55000821","post","type-post","status-publish","format-standard","hentry","category-66012012","category-662012","category-Interaktiv"],"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>Postversanddateien erstellen - 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\/Postversanddateien_erstellen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Postversanddateien erstellen\" \/>\n<meta property=\"og:description\" content=\"Der eine oder andere Unternehmer mag ein eigenes Kassenbuch f&uuml;hren, um Ein- und Ausgaben immer im Blick zu behalten. Da w&auml;re es doch praktisch, wenn man die anfallenden Buchungen gleich in einer Form aufbereiten k&ouml;nnte, in der sie der Steuerberater gleich weiterverarbeiten kann. Der vorliegende Beitrag zeigt, wie dies funktioniert.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:52:59+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/f603fd0cc9f94c0fa80121d848af0cc7\" \/>\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=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Postversanddateien erstellen\",\"datePublished\":\"2020-05-22T21:52:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/\"},\"wordCount\":2326,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/f603fd0cc9f94c0fa80121d848af0cc7\",\"articleSection\":[\"1\\\/2012\",\"2012\",\"Interaktiv\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/\",\"name\":\"Postversanddateien erstellen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/f603fd0cc9f94c0fa80121d848af0cc7\",\"datePublished\":\"2020-05-22T21:52:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/f603fd0cc9f94c0fa80121d848af0cc7\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/f603fd0cc9f94c0fa80121d848af0cc7\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Postversanddateien_erstellen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Postversanddateien erstellen\"}]},{\"@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":"Postversanddateien erstellen - 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\/Postversanddateien_erstellen\/","og_locale":"de_DE","og_type":"article","og_title":"Postversanddateien erstellen","og_description":"Der eine oder andere Unternehmer mag ein eigenes Kassenbuch f&uuml;hren, um Ein- und Ausgaben immer im Blick zu behalten. Da w&auml;re es doch praktisch, wenn man die anfallenden Buchungen gleich in einer Form aufbereiten k&ouml;nnte, in der sie der Steuerberater gleich weiterverarbeiten kann. Der vorliegende Beitrag zeigt, wie dies funktioniert.","og_url":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:52:59+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/f603fd0cc9f94c0fa80121d848af0cc7","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Postversanddateien erstellen","datePublished":"2020-05-22T21:52:59+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/"},"wordCount":2326,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/f603fd0cc9f94c0fa80121d848af0cc7","articleSection":["1\/2012","2012","Interaktiv"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/","url":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/","name":"Postversanddateien erstellen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/f603fd0cc9f94c0fa80121d848af0cc7","datePublished":"2020-05-22T21:52:59+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/f603fd0cc9f94c0fa80121d848af0cc7","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/f603fd0cc9f94c0fa80121d848af0cc7"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Postversanddateien_erstellen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Postversanddateien erstellen"}]},{"@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\/55000821","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=55000821"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000821\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}