Im ersten Teil der Beitragsreihe haben wir gezeigt, wie Sie eine DLL erzeugen können, mit der Sie von außen übergebene Daten plus eine Rechnung im PDF-Format zu einer ZUGFeRD-konformen Rechnung zusammenführen können. Das heißt, dass die PDF-Rechnung in eine Rechnung des Formats PDF/A-3 umgewandelt wird und ein XML-Dokument mit den Rechnungsdaten im computerlesbaren Format in das PDF-Dokument integriert wird. Der zweite Teil der Beitragsreihe zeigt nun, wie Sie die für das XML-Dokument benötigten Informationen an die DLL übergeben und so die ZUGFeRD-Rechnung erstellen.
DLL bereitstellen
Die DLL, die wir im ersten Teil der Beitragsreihe programmiert haben, steht automatisch auf Ihrem Rechner zur Verfügung, wenn Sie das VB-Projekt auf diesem Rechner erstellt haben. Dies führt automatisch zur Registrierung der DLL für die Nutzung von Access aus. Wenn Sie die DLL auf einem anderen Rechner einsetzen wollen, ist nach dem Kopieren der DLL auf den Zielrechner noch ein weiterer Schritt nötig. Sie müssen dann die Eingabeaufforderung mit Administratorrechten starten und den folgenden Befehl eingeben:
RegAsm.exe c:....ZUGFeRD.dll /codebase
Die Datei RegAsm.exe finden Sie in der Version für 32-bit im Verzeichnis C:\Windows\Microsoft.NET\Framework\v4.0.30319, für 64-bit im Verzeichnis C:\Windows\Microsoft.NET\Framework64\v4.0.30319. Achtung: 32-bit oder 64-bit hängt davon ab, welche Office-Version die DLL nutzen soll.
Verweis hinzufügen
Anschließend können Sie den Verweis über den Verweise-Dialog des VBA-Editors wie in Bild 1 hinzufügen.

Bild 1: Verweis auf die ZUGFeRD-DLL
Wenn Sie dann den Objektkatalog öffnen und die Bibliothek ZUGFeRD auswählen, finden Sie dort alle Befehle vor, die wir im ersten Teil mit der Visual Basic-Lösung in Visual Studio programmiert haben (siehe Bild 2).

Bild 2: Die ZUGFeRD-Befehle im Objektkatalog
Achtung: Verweis erneuern
Wenn Sie die DLL in Visual Studio hinsichtlich der öffentlichen Schnittstelle geändert haben, müssen Sie den Verweis erneuern. Dazu entfernen Sie den Verweis, schließen den Verweise-Dialog, öffnen diesen wieder und fügen den Verweis erneut hinzu.
Das Erneuern des Verweises können Sie allerdings auch über eine kleine VBA-Prozedur erledigen. Diese durchläuft die Verweise, bis es einen namens ZUGFeRD findet, merkt sich den Pfad, entfernt den Verweis und füge diesen erneut hinzu:
Public Sub VerweisAktualisieren() Dim objRef As Reference Dim strPath As String For Each objRef In References If objRef.Name = "ZUGFeRD" Then strPath = objRef.FullPath References.Remove objRef Exit For End If Next objRef References.AddFromFile strPath End Sub
PDF-Rechnung in ZUGFeRD-konforme Rechnung umwandeln
Ein Beispiel für eine Prozedur, mit der Sie eine PDF-Rechnung etwa namens RechungOhneXML.pdf mit Rechnungsdaten im XML-Format ausstatten, finden Sie in Listing 1. Hier deklarieren wir zunächst ein Objekt des Typs ZUGFeRD.ZUGFeRD_NET und erstellen dieses dann. Danach weisen wir den einzelnen Eigenschaften des Objekts die entsprechenden Werte zu.
Public Sub ZUGFeRDTest() Dim objZUGFeRD As ZUGFeRD.ZUGFeRD_NET Set objZUGFeRD = New ZUGFeRD.ZUGFeRD_NET With objZUGFeRD .Bemerkung = "Zahlbar innerhalb von zehn Tagen." .Kaeufer_Name = "Klaus Müller" .Kaeufer_Ort = "Oberhausen" .Kaeufer_PLZ = "46001" .Kaeufer_Strasse = "Centro-Allee 1" ' .Kaeufer_UstIDNr = "" .QuellPDF = CurrentProject.Path & "RechnungOhneXML.pdf" .Rechnungsnummer = "12345-1" .Verkaeufer_BIC = "COBADEFFXXX" .Verkaeufer_IBAN = "DE12121212121212121212" .Verkaeufer_Name = "André Minhorst Verlag" .Verkaeufer_Land = "DE" .Verkaeufer_Ort = "Duisburg" .Verkaeufer_PLZ = "47137" .Verkaeufer_Strasse = "Borkhofer Str. 17" .Verkaeufer_UstIDNr = "DE123123123" .Abschlaege = 0 .AnzahlProdukt = 1 .Aufschlaege = 0 .Bruttobetrag = 119 .Mehrwertsteuerbetrag = 19 .Nettobetrag = 100 .Produkt = "Access im Unternehmen" .Zahlungsreferenz = "12345-1" .ZielPDF = CurrentProject.Path & "RechnungMitXML.pdf" End With Debug.Print objZUGFeRD.ZUGFeRDRechnungErstellen End Sub
Listing 1: Erstellen einer ZUGFeRD-konformen Rechnung
Nach dem Starten der Prozedur dauert es wenige Sekunden, bis die Antwort des Aufrufs im Direktbereich des VBA-Editors landet. Danach steht die PDF-Rechnung unter dem angegebenen Pfad bereit und Sie können diese im PDF-Reader öffnen.
PDF untersuchen
Nur für Abonnenten
Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.
Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.
So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.
Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.
Bereits Abonnent? Hier einloggen
Kostenlos & unverbindlich
Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?
Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?
In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.
Jetzt kostenloses Access-Audit anfordern →