öffentlich
Redaktion Druckversion

Adressen in Berichten

Adressen in Access ausdrucken

3.75
(4)
Beitrag bewerten
Kommentar schreiben
Stand: 21. März 2006

Microsoft Access eignet sich vortrefflich für das Verwalten von Adressen. Früher oder später sollen diese Adressen in einem Bericht angezeigt werden - entweder in Form einer Anschrift oder auch in einem Bericht zum Erstellen von Adress-Etiketten. Mit einigen Tricks stellt der Bericht die Anschriften ganz nach Wunsch dar.

Access-Berichte eigenen sich perfekt zum Erstellen von Briefen oder Adressetiketten - einzige Voraussetzung ist eine Tabelle mit den gewünschten Adressdaten. Damit lassen sich leicht Briefe an eine Reihe von Adressaten versenden oder Etikettenbögen bedrucken. Die zugrunde liegende Tabelle sieht etwa wie folgt aus:

Bild vergrößernDiese Tabelle dient als Datenherkunft für den Ausdruck von Adressen per Bericht.

Hat man einen neuen Bericht erstellt und diesem die passende Adresstabelle oder eine darauf basierende Abfrage als Datenherkunft zugewiesen, kann es schon losgehen:

Ziehen Sie die gewünschten Felder aus der Feldliste in den Entwurf und passen Sie diese wie gewünscht an. Für zusammengesetzte Felder wie etwa Anrede/Titel/Vorname/Nachname oder PLZ/Ort verwenden Sie neue, leere Textfelder, für die Sie die in der Abbildung zu erkennenden Ausdrücke als Steuerelementinhalt festlegen:

Bild vergrößernDieser Entwurf eines Berichts könnte etwa für den Ausdruck von Adressetiketten herhalten.

Das Ergebnis ist schon nicht schlecht, offenbart aber gewisse Schwächen: Sobald eines der Felder nicht gefüllt ist, entstehen entweder eine leere Zeile (wie bei der Firma oder dem Namen der Person) oder unregelmäßige Zwischenräume - etwa wenn eine Person keinen Titel trägt.

Bei allzu unflexibler Berichtsgestaltung wirken sich fehlende Informationen in den zugrunde liegenden Daten unangenehm aus.

Um die durch fehlende Daten entstehenden Zwischenräume zu schließen, wenden Sie folgenden Trick an: Entfernen Sie einfach die einzelnen Felder und ersetzen Sie diese durch ein großes Feld mit zusammengesetztem Steuerelementinhalt. Um die gleiche Darstellung wie mit obigem Bericht zu erreichen, verwenden Sie dabei folgenden Ausdruck und stellen die Eigenschaft Vergrößerbar des Textfeldes auf den Wert Ja ein:

=[Firma] & Zchn(13) & Zchn(10) 
& [Anrede] & " " & [Titel] 
& " " & [Vorname] & " " & [Nachname] & Zchn(13) & Zchn(10) 
& [Strasse] & Zchn(13) & Zchn(10) 
& [PLZ] & " " & [Ort] & Zchn(13) & Zchn(10) 
& [Land]

Bild vergrößernDer Bericht enthält nur noch ein Textfeld mit einem aus den benötigten Feldern zusammengesetzten Ausdruck. Die Zoom-Ansicht erhalten Sie, wenn Sie beim Bearbeiten des Steuerelementinhalts die Tastenkombination Umschalt + F2 betätigen.

Der Ausdruck liefert genau das gleiche Ergebnis wie zuvor, allerdings können Sie hier durch den Einsatz der Wenn-Funktion prüfen, ob bestimmte Felder gefüllt sind und die richtigen Maßnahmen ergreifen. Der folgende Teilausdruck prüft etwa, ob der Adressdatensatz eine Firma enthält. Falls ja, ergibt der Ausdruck den Firmennamen plus angehängten Zeilenumbruch zurück, falls nein, eine leere Zeichenkette:

=Wenn([Firma];[Firma] & Zchn(13) & Zchn(10);"")

Unter Berücksichtigung eventuell fehlender Firmenbezeichnung, Person oder Titel sieht der komplette Ausdruck wie folgt aus (der besseren Übersicht halber mit Zeilenumbrüchen und Einrückungen versehen):

=Wenn(
    [Firma];
    [Firma] & Zchn(13) & Zchn(10);
    ""
) 
& Wenn(
    [Anrede] Oder [Titel] Oder [Vorname] Oder [Nachname];
    [Anrede] & " " & Wenn(
        [Titel];
        [Titel] & " ";
        ""
    ) & [Vorname] & " " & [Nachname] & Zchn(13) & Zchn(10);
    ""
) 
& [Strasse] & Zchn(13) & Zchn(10) 
& [PLZ] & " " & [Ort] & Zchn(13) & Zchn(10) 
& [Land]

Das Ergebnis sieht dann auch schon viel ansprechender aus:

Der Adressen-Bericht ohne störende Leerzeilen und -zeichen

Vereinfachung dank Plus-Verkettung

Neben dem kaufmännischen Und (&) können Sie auch mit dem Plus-Zeichen (+) Strings verketten. Dabei muss man allerdings ein wenig aufpassen, denn: Wenn nur eines der mit + verketteten Elemente der Zeichenkette den Wert Null hat, erhält der ganze Ausdruck den Wert Null. Beispiel:

[Firma] + Zchn(13) + Zchn(10) 

gibt den Firmennamen gefolgt von einem Zeilenumbruch aus, wenn das Feld Firma gefüllt ist, anderenfalls hat der ganze Ausdruck den Wert Null - damit fällt dann auch der Zeilenumbruch flach.

Wie verkettet man nun die Felder des Berichts so, dass wegen eines fehlenden Feldinhalts nicht direkt die komplette Adress-Zeichenkette den Wert Null enthält und dementsprechend nicht ausgegeben wird? Hier kommt wieder das kaufmännische Und zum Zuge: Die besondere "Arithmetik" der String-Verkettung lautet "+ vor &". Das heißt, dass mit "+" verkettete Strings zuerst "berechnet" werden und dann erst die Verkettung mit "&" erfolgt.

Den obigen Ausdruck mit den vielen Wenn-Bedingungen können Sie durch den folgenden Ausdruck ersetzen:

=[Firma]+Zchn(13)+Zchn(10) & [Anrede]+" " 
& [Titel]+" " & [Vorname]+" " 
& [Nachname]+Zchn(13)+Zchn(10) & [Strasse]+Zchn(13)+Zchn(10) 
& [PLZ]+" " & [Ort]+Zchn(13)+Zchn(10) & [Land]

Wichtig ist: Wenn eine Zeile aus mehr als einem Element besteht, das theoretisch den Wert Null enthalten kann, sollten Sie vorsichtig mit dem Plus-Zeichen umgehen. Der folgende Ausdruck liefert beispielsweise den Wert Null zurück, wenn nur einer der Werte Null ist:

 [Anrede]+" "+[Titel]+" "+[Vorname]+" "+[Nachname]

Hier bauen Sie einige &-Zeichen als "Bremse" ein, damit jeweils nur das nicht vorhandene Feld inklusive nachfolgendem Leerzeichen nicht ausgegeben wird:

[Anrede]+" " & [Titel]+" " & [Vorname]+" " & [Nachname]

Fehlt hier etwa die Anrede, fällt nur der Teil

[Anrede] + " " weg.

Aufgabe:

Ihr erworbenes Wissen können Sie an dieser Beispielaufgabe ausprobieren.

Beitrag bewerten

Ihre Wertung:

 

Der Kommentar von ist richtig: Zeilen ohne Inhalt lassen sich auch "tilgen", indem man den Inhalt der betroffenen Zeile mit + verkettet. Der Verkettungsausdruck erhält dann jedes Mal den Wert Null, wenn eines der Elemente den Wert Null hat. Wir haben diese Alternativlösung bereits in den Artikel eingebaut. Danke für den Hinweis!

Nach meiner Ansicht kann man das Problem auch mit "+" statt "&" lösen. "+" bewirkt, dass nur wenn vorhanden eine nächste Zeile eingeführt wird. Siehe Beispiel:
[Anrede]+Zchn(13)+Zchn(10) & [Vorname]+" " & [Nachname]+Zchn(13)+Zchn(10) & [firma]+Zchn(13)+Zchn(10) & [Abteilung_Institut]+Zchn(13)+Zchn(10) & [Strasse]+Zchn(13)+Zchn(10) & [Postfach]+Zchn(13)+Zchn(10) & [PLZ] & " " & [Ort]+Zchn(13)+Zchn(10) & (Wenn([Land]<>"ch";[Land];""))

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Downloads zu diesem Beitrag

Newsletter abonnieren