E-Rechnungen aus Word und Access erstellen

Nicht jede Rechnung entsteht in Excel. Viele Unternehmen schreiben ihre Rechnungen in Word oder erzeugen sie als Bericht aus einer Access Datenbank. Auch hier müssen Sie auf die E-Rechnung nicht mit einer neuen Software reagieren: SmartTools bietet für beide Programme eigene Lösungen an, mit denen Sie Ihre bestehenden Vorlagen und Datenbanken erweitern.

Excel-Inside Solutions stellt Ihnen in diesem Artikel die SmartTools E-Rechnung VBA-Bibliothek 2.5 für Word und SmartTools E-Rechnung 2.5 für Access vor, jeweils mit einem praxisnahen Codebeispiel. Die Grundlagen zur Pflicht finden Sie im Hauptartikel E-Rechnungspflicht erklärt.

E-Rechnungen aus Word

Mit der SmartTools E-Rechnung VBA-Bibliothek 2.5 für Word erweitern Sie Ihre Rechnungsvorlage in Word per VBA um die Ausgabe als ZUGFeRD in allen Profilen oder als XRechnung in den Syntaxvarianten CII und UBL. Nach der Installation setzen Sie in der VBA Entwicklungsumgebung einen Verweis auf die Bibliothek. Zum Lieferumfang gehört eine ungeschützte Mustervorlage.

  • E-Rechnungen im Format ZUGFeRD und XRechnung erstellen
  • E-Rechnungen offline gegen die offiziellen Regeln prüfen
  • E-Rechnungen übersichtlich anzeigen
  • Kompatibel mit Word 365, 2024, 2021, 2019, 2016 und 2013

Die Daten liegen in Inhaltssteuerelementen

Anders als in Excel gibt es in Word keine Zellen. Bewährt haben sich Inhaltssteuerelemente, die Sie über die Registerkarte Entwicklertools einfügen. Jedes Steuerelement erhält ein eindeutiges Tag, zum Beispiel KundeName oder KundePLZ. Über dieses Tag liest Ihr Makro den Wert zuverlässig aus, unabhängig davon, wo das Feld im Dokument steht.

'***************************************************
' VBA-Code erstellt 9/2026
' A. Eckl - Excel-Inside Solutions
' https://excel-inside.de
' Word: Werte aus Inhaltssteuerelementen lesen,
' Rechnung als PDF ausgeben und als ZUGFeRD speichern
'***************************************************
Option Explicit

Function WertAusFeld(strTag As String) As String
  Dim ccsFelder As ContentControls

  Set ccsFelder = ActiveDocument.SelectContentControlsByTag(strTag)
  If ccsFelder.Count = 0 Then Exit Function

  '** Platzhaltertext nicht als Inhalt uebernehmen
  If ccsFelder(1).ShowingPlaceholderText Then Exit Function
  WertAusFeld = Trim$(ccsFelder(1).Range.Text)
End Function

Sub ZUGFeRDAusWord(objZFRechnung As Object)
  Dim strPdf As String

  '** Dateiname der PDF aus dem Dokumentnamen ableiten
  strPdf = Left$(ActiveDocument.FullName, _
    InStrRev(ActiveDocument.FullName, ".")) & "pdf"

  '** Schritt 1: Das gewohnte Rechnungsbild als PDF ausgeben
  ActiveDocument.ExportAsFixedFormat OutputFileName:=strPdf, _
    ExportFormat:=wdExportFormatPDF

  '** Schritt 2: Rechnungsdaten zuweisen (Auszug)
  With objZFRechnung.Buyer
    .Name = WertAusFeld("KundeName")
    .PostalAddress.AddressLine1 = WertAusFeld("KundeStrasse")
    .PostalAddress.PostCode = WertAusFeld("KundePLZ")
    .PostalAddress.City = WertAusFeld("KundeOrt")
    .PostalAddress.CountryCode = WertAusFeld("KundeLand")
  End With

  '** Schritt 3: XML einbetten und in PDF/A wandeln
  objZFRechnung.Save strPdf
End Sub

Das Rechnungsobjekt legen Sie mit der Klasse des gewünschten Profils an, die genauen Klassennamen finden Sie in der Mustervorlage. Zur Kontrolle zeigen Sie die fertige E-Rechnung mit der Anweisung wdE_Rechnung.ShowInvoiceOverview an.

Tipps für Word Vorlagen

  1. Platzhalter abfangen. Ein leeres Inhaltssteuerelement liefert seinen Platzhaltertext zurück. Die Prüfung auf ShowingPlaceholderText im Beispiel verhindert, dass etwa „Klicken Sie hier“ als Kundenname in der E-Rechnung landet.
  2. Positionen in einer Tabelle. Führen Sie die Rechnungspositionen in einer Word Tabelle mit festen Spalten. Beachten Sie beim Auslesen, dass der Text einer Tabellenzelle am Ende zwei Steuerzeichen enthält, die Sie vor der Übernahme entfernen müssen.
  3. Beträge als Zahl übergeben. Word kennt nur Text. Wandeln Sie Mengen und Preise vor der Zuweisung mit CDbl um und runden Sie sie auf zwei Nachkommastellen.
  4. Dokumentvorlage mit Makros. Speichern Sie die Rechnungsvorlage als Vorlage mit Makros (dotm). Jede neue Rechnung entsteht dann als eigenes Dokument, der Code bleibt zentral in der Vorlage.

E-Rechnungen aus Access

SmartTools E-Rechnung 2.5 für Access ist das umfangreichste Paket der Reihe. Es enthält alles, um in Ihren Datenbanken E-Rechnungen zu erstellen, einzulesen, anzuzeigen und zu validieren. Der große Vorteil: Ihr bisheriger Ablauf zum Erstellen der PDF Rechnung aus einem Bericht bleibt vollständig erhalten, am Rechnungsbericht selbst ändern Sie nichts.

  • Alle ZUGFeRD Profile einschließlich Extended sowie XRechnung in CII und UBL
  • Mehrstufige Unterpositionen im Profil Extended nach ZUGFeRD 2.5
  • Import empfangener E-Rechnungen in Ihre Tabellen
  • Validierung nach den aktuellen offiziellen Regeln, lokal auf Ihrem System
  • Speichern des Prüfergebnisses zusammen mit der E-Rechnung
  • Anzeige als HTML, zum Beispiel in einem Browser Steuerelement Ihres Formulars
  • Kompatibel mit Access 365, 2024, 2021, 2019, 2016, 2013 und 2010

Beispiel: Bericht als PDF und daraus eine ZUGFeRD Rechnung

Das folgende Beispiel gibt den Rechnungsbericht für eine bestimmte Rechnung als PDF aus, liest die Kopfdaten aus einer Abfrage und speichert anschließend die ZUGFeRD Rechnung. Namen von Bericht, Abfrage und Feldern passen Sie an Ihre Datenbank an.

'***************************************************
' VBA-Code erstellt 9/2026
' A. Eckl - Excel-Inside Solutions
' https://excel-inside.de
' Access: Rechnungsbericht als PDF ausgeben und daraus
' eine ZUGFeRD Rechnung erzeugen
'***************************************************
Option Explicit

Sub ERechnungAusAccess(lngRechnungID As Long, objZFRechnung As Object)
  Dim rs As DAO.Recordset
  Dim strPdf As String

  strPdf = CurrentProject.Path & "\Rechnung_" & lngRechnungID & ".pdf"

  '** Schritt 1: Bisherigen Bericht gefiltert als PDF ausgeben
  DoCmd.OpenReport "rptRechnung", acViewPreview, , _
    "RechnungID = " & lngRechnungID, acHidden
  DoCmd.OutputTo acOutputReport, "rptRechnung", acFormatPDF, strPdf
  DoCmd.Close acReport, "rptRechnung"

  '** Schritt 2: Kopfdaten aus der Abfrage uebernehmen (Auszug)
  Set rs = CurrentDb.OpenRecordset( _
    "SELECT * FROM qryRechnungskopf WHERE RechnungID = " & lngRechnungID, _
    dbOpenSnapshot)

  With rs
    objZFRechnung.Seller.Name = !Lieferant_Name
    objZFRechnung.Seller.PostalAddress.AddressLine1 = !Lieferant_Strasse
    objZFRechnung.Seller.PostalAddress.PostCode = !Lieferant_PLZ
    objZFRechnung.Seller.PostalAddress.City = !Lieferant_Ort
    objZFRechnung.Buyer.Name = !Kunde_Name
  End With
  rs.Close

  '** Schritt 3: XML einbetten und in PDF/A wandeln
  objZFRechnung.Save strPdf
End Sub

Die Positionen übertragen Sie auf dieselbe Weise aus einem Recordset der Positionstabelle. Für das Profil Extended legen Sie zu einer Position beliebig viele Unterpositionen an und hängen diese mit der Methode AddLine an die übergeordnete Position.

Tipps für Access Datenbanken

  1. Eine Abfrage für die Kopfdaten. Bündeln Sie Rechnung, Kunde und eigene Firmendaten in einer Abfrage. Der VBA Code bleibt dadurch kurz und übersichtlich.
  2. Codes in Nachschlagetabellen. Pflegen Sie Einheitencodes, Steuerkategorien und Ländercodes in eigenen Tabellen und verknüpfen Sie diese mit Ihren Artikeln und Kunden.
  3. Eingangsrechnungen automatisch erfassen. Mit der Methode Import lesen Sie empfangene E-Rechnungen ein und schreiben Rechnungssteller, Betrag und Fälligkeit direkt in Ihre Tabellen.
  4. PDF und Daten nebeneinander prüfen. Mit ConvertToHTML wandeln Sie eine E-Rechnung in eine lesbare Ansicht um. In einem Formular können Sie so bei ZUGFeRD Rechnungen PDF und XML Inhalt nebeneinander zur Prüfung anzeigen.
  5. Prüfergebnis mitspeichern. Nach der Empfehlung der Finanzverwaltung sollte das Ergebnis der Validierung aufbewahrt werden. Die Access Lösung erledigt das mit einer einzigen Codezeile.
  6. Lizenzmodell für verteilte Datenbanken. Die erste Lizenz dient als Basis für Entwicklung und Einsatz, weitere Arbeitsplätze sind deutlich günstiger. Für Entwickler, die ihre Datenbank an viele Anwender verteilen, gibt es Pakete mit Client Lizenzen.

Word, Access oder doch Excel?

Die Wahl richtet sich nach dem Ort, an dem Ihre Rechnungsdaten heute liegen. Schreiben Sie Rechnungen als Dokument, ist die Word Bibliothek die natürliche Erweiterung. Entstehen Rechnungen aus einer Datenbank mit Kunden, Aufträgen und Artikeln, führt an der Access Lösung kein Weg vorbei. Liegen Ihre Vorlagen in Excel, lesen Sie unsere Artikel zur E-Rechnung VBA-Bibliothek für Excel und zum E-Rechnung Assistenten für Excel, der ganz ohne Programmierung auskommt.

Word Vorlage oder Access Datenbank erweitern

Alle SmartTools E-Rechnungslösungen erhalten Sie über unsere Produktseite. Excel-Inside Solutions entwickelt seit über 25 Jahren Lösungen mit Excel, Word und Access und integriert die E-Rechnung auf Wunsch direkt in Ihre bestehende Vorlage oder Datenbank.

Zu den E-Rechnungslösungen Integration anfragen

Häufige Fragen zur E-Rechnung mit Word und Access

Kann ich meine bestehende Word Rechnungsvorlage weiter nutzen?

Ja. Mit der SmartTools E-Rechnung VBA-Bibliothek für Word erweitern Sie Ihre Vorlage per VBA um die Ausgabe als ZUGFeRD oder XRechnung. Das gewohnte Rechnungsbild bleibt erhalten.

Muss ich meinen Access Rechnungsbericht ändern?

Nein. Der bisherige Ablauf zum Erstellen der PDF Rechnung bleibt vollständig erhalten. Sie ergänzen lediglich einige VBA Anweisungen, welche die Daten dem Rechnungsobjekt zuweisen und die ZUGFeRD Rechnung speichern.

Kann ich E-Rechnungen in Access einlesen?

Ja. Mit der Methode Import lesen Sie empfangene E-Rechnungen vollständig ein und übernehmen die Inhalte in Ihre Tabellen. Zusätzlich lassen sie sich validieren und als HTML in einem Formular anzeigen.

Werden Unterpositionen unterstützt?

Ja. Die Access Lösung unterstützt im Profil Extended nach ZUGFeRD 2.5 Unterpositionen über mehrere Ebenen.

Anfrage zu Word oder Access

Beschreiben Sie kurz Ihre Vorlage oder Datenbank und den gewünschten Ablauf. Wir melden uns mit einer Einschätzung und einem unverbindlichen Angebot.

Wir freuen uns, dass Sie Interesse an unseren Dienstleistungen haben! Wenn Sie ein kostenloses und unverbindliches Angebot einholen möchten, füllen Sie bitte die nachstehenden Felder aus. Geben Sie uns einen detaillierten Überblick über Ihre Anfrage, damit wir Ihnen ein maßgeschneidertes Angebot unterbreiten können, das genau auf Ihre Bedürfnisse zugeschnitten ist.

Alternativ können Sie uns jederzeit eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein. senden. Unser Team steht bereit, um Ihre Fragen zu beantworten und Ihnen bei Ihren Anliegen zu helfen.

Wir möchten betonen, dass wir Ihnen das Angebot völlig kostenfrei und ohne Verpflichtungen erstellen. In der Regel erhalten Sie innerhalb weniger Stunden eine Rückmeldung von uns. Ihre Zufriedenheit liegt uns am Herzen, und wir sind bestrebt, Ihnen schnell und effizient zu helfen.

Vielen Dank für Ihr Vertrauen in uns. Wir freuen uns auf Ihre Anfrage!

Invalid Input
Invalid Input
Keine gültige E-Mail Adresse
Invalid Input
Invalid Input
Invalid Input
Sicherheitsabfrage
Ungültige Eingabe
Anfrage senden

Sie brauchen eine individuelle Excel-/Office-Lösung?

Wir entwickeln Ihr Makro, Tool oder Ihre Datenbank – passgenau für Ihr Unternehmen.

Relevante Artikel

Projekt-Anfrage

Excel automatisieren. Zeit sparen.
Fehler vermeiden.
Wir entwickeln Ihre individuelle
Excel- / VBA-Lösung.
Jetzt anfragen!

    Wir benutzen Cookies
    Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.