Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 1/2012.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Lernen Sie Techniken kennen, um Umsatzsteuer-Identifikationsnummern online zu prüfen.

Techniken

VBA, HTTP, XML

Voraussetzungen

Access 2000 und höher

Beispieldateien

UstIDNr.mdb

Shortlink

www.access-im-unternehmen.de/820

Umsatzsteuer-Identifikationsnummer prüfen

André Minhorst, Duisburg

Wenn Sie Rechnungen an ausländischen Geschäftspartner stellen, kann es sein, dass dieser keine deutsche Umsatzsteuer bezahlt. Dazu muss er Ihnen seine eigene Umsatzsteuer-Identifiktationsnummer mitteilen, die Sie dann - neben Ihrer eigenen - auf der Rechnung angeben. Das Bundeszentralamt für Steuern bietet einen Internet-Dienst, mit dem Sie die Gültigkeit von Umsatzsteuer-Identifikationsnummern testen können. Dieser Beitrag zeigt, wie Sie diesen Dienst von Access aus aufrufen, um eigene Prüfungen durchzuführen.

Alle Informationen zur Schnittstelle finden Sie unter der Adresse http://evatr.bff-online.de/eVatR/xmlrpc.

Sie müssen keine Daten oder Komponenten für die Abfrage herunterladen, sondern nur die in diesem Beitrag beschriebene Lösung in Ihre eigene Anwendung zu integrieren.

Das Abfragen der Umsatzsteuer-Identifikationsnummer ist kostenlos, Sie benötigen dazu nur eine eigene Umsatzsteuer-Identifikationsnummer sowie die entsprechenden Informationen zum Rechnungsempfänger.

Die Anfrage erfolgt über das HTTP-Protokoll und wird im einfachsten Fall direkt im Browser durchgeführt. Der folgende Aufruf enthält die mindestens anzugebenden Informationen:

http://evatr.bff-online.de/evatrRPC?UstId_1=DE111111111&UstId_2=ATU22222222&Firmenname=&Ort=&PLZ=&Strasse=&strStrasse&Druck=

Beachten Sie, dass Sie alle Parameter angeben müssen - auch wenn diese leer sind. Das Ergebnis sieht im Browser eher wild aus (s. Abb. 1).

pic003.png

Abb. 1: Einfache Anfrage im Browser

Das ist aber kein Problem: Wir wollen es ja nicht selbst auswerten, sondern dies der Access-Lösung dieses Artikels überlassen.

Ein Blick in den Quellcode zeigt, dass die Antwort im XML-Format kommt und somit leicht zu analysieren ist (s. Abb. 2). Sie besteht aus einem Hauptelement namens params, das einige param-Elemente enthält. Jedes param-Element enthält ein paar Ebenen tiefer ein Name-Wert-Paar.

pic004.png

Abb. 2: Antwort im XML-Format

Beschreibung der Antwort

Die Antwort enthält die folgenden Informationen:

  • Datum: Datum der Anfrage (tt.mm.jjjj).
  • Uhrzeit: Uhrzeit der Anfrage (hh:mm:ss).
  • ErrorCode: Fehlernummer der Anfrage
  • UstId_1: Ihre deutsche USt-IdNr.
  • UstId_2: Angefragte ausländische USt-IdNr.
  • Firmename: Der angefragte Firmenname
  • Ort: Der von Ihnen angefragte Ort der Firma
  • PLZ: Die angefragte Postleitzahl der Firma
  • Strasse: Die von Ihnen angefragte Strasse der Firma
  • Gueltig_ab: Beginn der Gültigkeit der ausländischen USt-IdNr (Format: tt.mm.jjjj), wird nur angegeben, wenn der Parameter ErrorCode den Wert 203 oder 204 liefert.
  • Gueltig_bis: Ende der Gültigkeit der ausländischen USt-IdNr (Format: tt.mm.jjjj), wird nur angegeben, wenn der Parameter ErrorCode den Wert 204 zurückliefert.
  • Druck: Gibt an, ob Sie eine amtliche Bestätigungsmitteilung angefordert haben und kann die Werte ja (Mitteilung angefordert) oder nein (ohne Miteilung) annehmen.

Die Parameter Erg_Name, Erg_Ort, Erg_PLZ und Erg_Str liefern einen der folgenden Werte zurück, der angibt, ob die übergebenen Werte für Firmenname, Ort, PLZ und Straße mit den in der Datenbank gespeicherten Werten übereinstimmen:

  • A: stimmt überein
  • B: stimmt nicht überein
  • C: nicht angefragt
  • D: vom EU-Mitgliedsstaat nicht mitgeteilt

Speichern der erhaltenen Daten

Wenn Sie regelmäßig die Umsatzsteuer-Identifikationsnummer prüfen, macht es Sinn, diese in einer Tabelle zu speichern, um unnötige Aufrufe des Internetdienstes zu verhindern. Dazu legen Sie eine Tabelle namens tblRequests an und fügen dieser für jedes Feld des Antwort-XML-Dokuments ein Feld hinzu. Abb. 3 zeigt die Entwurfsansicht dieser Tabelle.

pic005.png

Abb. 3: Tabelle zum Speichern der ermittelten Informationen zu Umsatzsteuer-Identifikationsnummern

Errorcode

Die im Feld Errorcode gelieferten Zahlenwerte haben konkrete Bedeutungen. Errorcode ist eigentlich auch nicht der richtige Begriff für die in diesem Feld zurückgelieferten Zahlenwerte. Diese geben zwar auch Informationen über eventuell aufgetretene Fehler, jedoch gibt es auch im Erfolgsfall einen Wert im Feld Errorcode. Informationen über den Errorcode finden Sie auf der Webseite des Internetdienstes (s. Abb. 4).

pic001.png

Abb. 4: Fehlercodes auf der Seite des Anbieters

Nun helfen uns die Beschreibungen der Fehler auf der Internetseite nicht besonders weiter - wir wollen nämlich die nach dem Einlesen im Feld Errorcode der Tabelle tblRequests enthaltenen Zahlenwerte interpretieren können. Also legen wir eine neue Tabelle namens tblResponseIDs mit den beiden Feldern ResponseID und Response an und übertragen die Zahlenwerte und die entsprechenden Beschreibungen in diese Tabelle. Das Resultat sieht dann wie in Abb. 5 aus.

pic002.png

Abb. 5: Speichern der Fehlerbeschreibungen in einer separaten Tabelle

Formulare zum Einlesen der Prüfungsdaten

Die Grundlage wäre geschaffen, jetzt können Sie sich an den Entwurf der Formulare unserer Lösung heranwagen. Die Daten der zu prüfenden Steuernummer sollen in Textfelder eines Formulars namens frmUstIdNr eingegeben werden, das Ergebnis nach dem Aufruf des Internetdienstes in einem Unterformular namens sfmUstIdNr erscheinen.

Das Unterformular erhält als Datenherkunft die Abfrage qryRequests und sieht wie in Abb. 6 aus. Diese Abfrage führt die Daten der beiden Tabellen tblRequests und tblResponseIDs zusammen, damit das Unterformular gleich die den Zahlenwerten des Feldes ErrorCode entsprechenden Texte anzeigen kann.

pic006.png

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.