Adressen für Berichte aufbereiten

Die Ausgabe von Adressen in Berichten ist doch ein alter Hut. Sie platzieren die einzelnen Felder mit den betroffenen Daten dort, wo die Adresse erscheinen soll – fertig! Aber halt: Manchmal ist es doch nicht so einfach. Wenn beispielsweise Adresselemente wie die Straße fehlen, kommt es mitunter zu unschönen Lücken im Adressblock. Aber auch die Lösung zu diesem Problem ist bereits bekannt. Dieser Beitrag stellt kurz die gängigen Vorgehensweisen vor und zeigt dann eine alternative Methode, um Adressblöcke perfekt zusammenzustellen.

Wer noch nicht lange mit Access arbeitet, wird beim ersten Versuch, Adressdaten zu einem Adressblock zusammenzuführen, wohl einfach die betroffenen Felder an die entsprechende Stelle im Entwurf des Berichts ziehen.

Dies kann funktionieren, tut es aber nicht zwangsläufig: Adressdaten kommen nämlich längst nicht immer in der gleichen Zusammenstellung daher. Mal gehört eine Firma zu einer Adresse, mal mit, mal ohne Ansprechpartner, mal geht die Post an eine einzelne Person, die mit entsprechender Anrede zu versehen ist, mal fehlt die Straße. Gelegentlich fügen eifrige Benutzer die Länderkennzeichnung zur Postleitzahl hinzu, was früher hilfreich war, heute aber eher stört: Immerhin bereits seit einer änderung der DIN 5008 im Jahr 2001 sollen die Länderkennzeichen für Auslandssendungen nicht mehr vor die Postleitzahl gesetzt werden, sondern das Land ausgeschrieben in der letzten Zeile des Adressblocks erscheinen. Es gilt also nicht mehr:

Herrn
André Minhorst
Borkhofer Straße 17
D-47137 Duisburg

Stattdessen ist seit 2001 folgende Notation zu verwenden:

Herrn
André Minhorst
Borkhofer Straße 17
47137 DUISBURG
DEUTSCHLAND

Dies gilt allerdings auch nur für Sendungen ins Ausland (dieses Beispiel ist also streng genommen falsch) – für Inlandssendungen wird schlicht kein Land angegeben.

Bei Auslandssendungen werden Ort und Land in Großbuchstaben angegeben, der Ort in Landessprache, das Land in Deutsch, Englisch oder Französisch. Es gibt keine Leerzeilen im Adressblock! Zusätzliche Vermerke wie Einschreiben, Warensendung et cetera landen in der ersten Zeile:

Einschreiben
Herrn
André Minhorst
Borkhofer Straße 17
47137 DUISBURG

Ist eine Firmenbezeichnung im Spiel, landet diese über dem Namen eines eventuell vorhandenen Adressaten, aber unter einem Zusatzvermerk. Bei Firmenbezeichnung und Adressat gehört die Anrede in die gleiche Zeile wie der Adressat, sonst eine Zeile darüber:

Redaktionsbüro Minhorst
Herrn André Minhorst
Borkhofer Straße 17
47137 DUISBURG

Wenn eine Sendung mit Personenangabe wie oben an eine Firma geschickt wird, wird diese geöffnet und dann weitergeleitet. Soll diese nicht geöffnet werden, vertauscht man Adressat und Firma:

Herrn André Minhorst
Redaktionsbüro Minhorst
Borkhofer Straße 17
47137 DUISBURG

Beispieltabelle

Als Beispieltabelle verwenden wir zunächst die Tabelle tblAdressenEinfach der Beispieldatenbank. Diese enthält die Felder Firma, AnredeID, Vorname, Nachname, Strasse, PLZ, Ort und Land (s. Abb. 1).

pic002.png

Abb. 2: Erweitern der Adressen um das Anrede-Feld der Anreden-Tabelle

Einfache Variante: Einzelne Felder

Wenn Sie die Felder Ihrer Adresstabelle in einem Bericht platzieren möchten, erledigen Sie dies am einfachsten durch direktes Einfügen der Felder im Bericht. Wenn Sie die Anrede wie in der Beispieltabelle in einer separaten Tabelle etwa namens tblAnreden speichern, können Sie diese auf zwei Arten in den Bericht holen: Entweder Sie definieren das Feld AnredeID als Nachschlagefeld oder Sie fügen das Feld über eine Abfrage wie in Abb. 2 zur Datenherkunft des Berichts hinzu. Die erste Variante ist etwas einfacher: Access zeigt das Feld dann als Kombinationsfeld an, später in der Seitenansicht und auch beim Drucken erscheint dieses jedoch als herkömmliches Textfeld (s. Abb. 3). In beiden Fällen müssen Sie normalerweise später nachhelfen: Immerhin lautet die auszuwählende Anrede meist Herr und Frau, zumindest der Herr wird aber im Adressblock als Herrn ausgegeben.

pic001.png

Abb. 1: Beispieltabelle mit Adressen

pic003.png

Abb. 3: Anrede als Nachschlagefeld

Access-Neulinge bauen beim ersten Versuch, einen Adressblock zusammenzustellen, meist so etwas wie in Abb. 4. Sie stellen jedoch schnell fest, dass die Daten nicht immer die passende Breite für die Felder haben. Die nächste Variante fasst dann Elemente in Textfeldern zusammen, damit die hässlichen Zwischenräume verschwinden (s. Abb. 5). Anrede, Vorname und Nachname landen dann etwa in einem Feld namens txtAdressat mit dem folgenden Steuerelementinhalt:

pic004.png

Abb. 4: Einsteiger-Variante

pic005.png

Abb. 5: Verbesserte Einsteiger-Variante

=[Anrede] & " " & [Vorname] & " " & [Nachname]

Leider steht dann im Bericht Herr und nicht Herrn. Dies ändert folgende Anpassung:

=Wenn([AnredeID]=1;"Herrn";"Frau") & " " & [Vorname] & " " & [Nachname]

Nun kann es aber auch vorkommen, dass keine Firma angegeben wurde. Dann soll die Anrede in die erste Zeile rutschen. Die erste Zeile (Textfeld txtFirmaOderAnrede) sieht dann etwa so aus:

=Wenn(Länge([Firma])>0;[Firma];Wenn([AnredeID]=1;"Herrn";"Frau"))

Für die zweite Zeile resultiert daraus folgende Formel:

=Wenn(IstNull([Firma]);"";Wenn([AnredeID]=1;"Herrn";"Frau") & " ") & [Vorname] & " " & [Nachname]

Das Ergebnis sieht schon recht gut aus, wie Abb. 6 zeigt. Fehlt nur noch eine Behandlung von Lücken, die auftreten, wenn bestimmte Elemente wie etwa die PLZ oder die Straße fehlen. Bezogen auf ein komplettes Textfeld ist dies kein Problem: Stellen Sie einfach die Eigenschaft Verkleinerbar auf den Wert Ja ein. Es wird dann mit der Höhe 0cm angezeigt, wenn es leer ist. Die übrigen Felder rutschen entsprechend nach oben. Leider bleiben die Zwischenräume zwischen den Feldern erhalten. Aber auch dies lässt sich verhindern: Wenn Sie den gewünschten Zeilenabstand durch Zwischenräume herstellen, dann können Sie die Höhe der Felder auch so weit vergrößern, dass diese genau aneinander kleben. Die Felder dürfen sich aber nicht berühren, sonst werden leere Felder nicht mehr verkleinert. Auch dürfen sich auf der gleichen Höhe keine weiteren Steuerelemente befinden, da diese ja nicht gleichermaßen minimiert werden können.

pic006.png

Abb. 6: Ist keine Firma vorhanden, landet die Anrede in der ersten Zeile.

Weitere Variante: Alles in ein Textfeld

Sie können auch den kompletten Adressblock in einem einzigen Feld zusammenstellen. Dies ergibt dann einen mehr oder weniger übersichtlichen Ausdruck, der eine Reihe Wenn-Bedingungen, Zeilenumbruch-Codes und verschiedene Verknüpfungsarten (Kaufmanns-Und und Plus-Zeichen) enthält. Den kompletten Ausdruck geben Sie dann als Steuerelement eines einzigen Textfelds an. Wir wollen an dieser Stelle nicht ins Detail gehen.

Erschwernis: Liefer- und Rechnungsadressen

In vielen Fällen kommen Sie mit einer einzigen Adresse pro Kunde nicht aus. Zwar muss man nicht immer gleich wie Amazon die Möglichkeit bieten, endlos viele Adressen je Kunde einzutragen, aber eine Liefer- und eine Rechnungsanschrift je Kunde kann schon nicht schaden. Dem wird beispielsweise die Tabelle aus Abb. 7 gerecht. Sie enthält jedes Feld je einmal für die Liefer- und die Rechnungsanschrift, was durch entsprechende Suffixe verdeutlicht wird.

pic007.png

Abb. 7: Tabellen mit Daten für Rechnungs- und Lieferadresse

Wer keine redundanten Daten mag, wird für Kunden, deren Rechnungs- und Lieferanschrift identisch ist, nur eine der beiden Anschriften angeben. In diesem Fall brauchen Sie je nach benötigter Anschrift für jedes Feld noch eine weitere Unterscheidung: Soll Firma, Anrede, Vorname et cetera der Rechnungs- oder der Lieferanschrift verwendet werden Wenn Sie alle Informationen in einem einzigen Ausdruck unterbringen möchten, wird dieser sehr unübersichtlich und auch die Fehleranfälligkeit steigt. Ganz zu schweigen von der Tatsache, dass nachträgliche änderungen eine echte Herausforderung sind.

Dies wird etwas vereinfacht, wenn Sie sich zu ein wenig Redundanz hinreißen lassen, wie es etwa im Beitrag Liefer-, Rechnungs- und sonstige Adressen (www.access-im-unternehmen.de/813) beschrieben wird. Wenn Sie auch bei Vorhandensein nur einer Adresse sowohl die Rechnungs- als auch die Lieferanschrift entsprechend füllen, brauchen Sie zwar einen Ausdruck mehr, dafür fallen beide Ausdrücke aber wesentlich einfacher aus.

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar