{"id":55000817,"date":"2012-02-01T00:00:00","date_gmt":"2020-05-22T21:52:32","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=817"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Adressen_fuer_Berichte_aufbereiten","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/","title":{"rendered":"Adressen f&uuml;r Berichte aufbereiten"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/715215e698ff49aca9a7c5fe220b8f9f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>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 &#8211; fertig! Aber halt: Manchmal ist es doch nicht so einfach. Wenn beispielsweise Adresselemente wie die Stra&szlig;e fehlen, kommt es mitunter zu unsch&ouml;nen L&uuml;cken im Adressblock. Aber auch die L&ouml;sung zu diesem Problem ist bereits bekannt. Dieser Beitrag stellt kurz die g&auml;ngigen Vorgehensweisen vor und zeigt dann eine alternative Methode, um Adressbl&ouml;cke perfekt zusammenzustellen.<\/b><\/p>\n<p>Wer noch nicht lange mit Access arbeitet, wird beim ersten Versuch, Adressdaten zu einem Adressblock zusammenzuf&uuml;hren, wohl einfach die betroffenen Felder an die entsprechende Stelle im Entwurf des Berichts ziehen.<\/p>\n<p>Dies kann funktionieren, tut es aber nicht zwangsl&auml;ufig: Adressdaten kommen n&auml;mlich l&auml;ngst nicht immer in der gleichen Zusammenstellung daher. Mal geh&ouml;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&szlig;e. Gelegentlich f&uuml;gen eifrige Benutzer die L&auml;nderkennzeichnung zur Postleitzahl hinzu, was fr&uuml;her hilfreich war, heute aber eher st&ouml;rt: Immerhin bereits seit einer &auml;nderung der DIN 5008 im Jahr 2001 sollen die L&auml;nderkennzeichen f&uuml;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:<\/p>\n<pre>Herrn\r\nAndr&eacute; Minhorst\r\nBorkhofer Stra&szlig;e 17\r\nD-47137 Duisburg<\/pre>\n<p>Stattdessen ist seit 2001 folgende Notation zu verwenden:<\/p>\n<pre>Herrn\r\nAndr&eacute; Minhorst\r\nBorkhofer Stra&szlig;e 17\r\n47137 DUISBURG\r\nDEUTSCHLAND<\/pre>\n<p>Dies gilt allerdings auch nur f&uuml;r Sendungen ins Ausland (dieses Beispiel ist also streng genommen falsch) &#8211; f&uuml;r Inlandssendungen wird schlicht kein Land angegeben.<\/p>\n<p>Bei Auslandssendungen werden Ort und Land in Gro&szlig;buchstaben angegeben, der Ort in Landessprache, das Land in Deutsch, Englisch oder Franz&ouml;sisch. Es gibt keine Leerzeilen im Adressblock! Zus&auml;tzliche Vermerke wie <b>Einschreiben<\/b>, <b>Warensendung <\/b>et cetera landen in der ersten Zeile:<\/p>\n<pre>Einschreiben\r\nHerrn\r\nAndr&eacute; Minhorst\r\nBorkhofer Stra&szlig;e 17\r\n47137 DUISBURG<\/pre>\n<p>Ist eine Firmenbezeichnung im Spiel, landet diese &uuml;ber dem Namen eines eventuell vorhandenen Adressaten, aber unter einem Zusatzvermerk. Bei Firmenbezeichnung und Adressat geh&ouml;rt die Anrede in die gleiche Zeile wie der Adressat, sonst eine Zeile dar&uuml;ber:<\/p>\n<pre>Redaktionsb&uuml;ro Minhorst\r\nHerrn Andr&eacute; Minhorst\r\nBorkhofer Stra&szlig;e 17\r\n47137 DUISBURG<\/pre>\n<p>Wenn eine Sendung mit Personenangabe wie oben an eine Firma geschickt wird, wird diese ge&ouml;ffnet und dann weitergeleitet. Soll diese nicht ge&ouml;ffnet werden, vertauscht man Adressat und Firma:<\/p>\n<pre>Herrn Andr&eacute; Minhorst\r\nRedaktionsb&uuml;ro Minhorst\r\nBorkhofer Stra&szlig;e 17\r\n47137 DUISBURG<\/pre>\n<p><b>Beispieltabelle<\/b><\/p>\n<p>Als Beispieltabelle verwenden wir zun&auml;chst die Tabelle <b>tblAdressenEinfach<\/b> der Beispieldatenbank. Diese enth&auml;lt die Felder <b>Firma<\/b>, <b>AnredeID<\/b>, <b>Vorname<\/b>, <b>Nachname<\/b>, <b>Strasse<\/b>, <b>PLZ<\/b>, <b>Ort <\/b>und <b>Land<\/b> (s. Bild 1).<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic002.png\" alt=\"pic002.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Erweitern der Adressen um das Anrede-Feld der Anreden-Tabelle<\/span><\/b><\/p>\n<p><b>Einfache Variante: Einzelne Felder<\/b><\/p>\n<p>Wenn Sie die Felder Ihrer Adresstabelle in einem Bericht platzieren m&ouml;chten, erledigen Sie dies am einfachsten durch direktes Einf&uuml;gen der Felder im Bericht. Wenn Sie die Anrede wie in der Beispieltabelle in einer separaten Tabelle etwa namens <b>tblAnreden <\/b>speichern, k&ouml;nnen Sie diese auf zwei Arten in den Bericht holen: Entweder Sie definieren das Feld <b>AnredeID <\/b>als Nachschlagefeld oder Sie f&uuml;gen das Feld &uuml;ber eine Abfrage wie in Bild 3). In beiden F&auml;llen m&uuml;ssen Sie normalerweise sp&auml;ter nachhelfen: Immerhin lautet die auszuw&auml;hlende Anrede meist <b>Herr <\/b>und <b>Frau<\/b>, zumindest der <b>Herr <\/b>wird aber im Adressblock als <b>Herrn <\/b>ausgegeben.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic001.png\" alt=\"pic001.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Beispieltabelle mit Adressen<\/span><\/b><\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic003.png\" alt=\"pic003.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Anrede als Nachschlagefeld<\/span><\/b><\/p>\n<p>Access-Neulinge bauen beim ersten Versuch, einen Adressblock zusammenzustellen, meist so etwas wie in Bild 5). <b>Anrede<\/b>, <b>Vorname <\/b>und <b>Nachname <\/b>landen dann etwa in einem Feld namens <b>txtAdressat<\/b> mit dem folgenden Steuerelementinhalt:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic004.png\" alt=\"pic004.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Einsteiger-Variante<\/span><\/b><\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic005.png\" alt=\"pic005.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5: Verbesserte Einsteiger-Variante<\/span><\/b><\/p>\n<pre>=[Anrede] &amp; &quot; &quot; &amp; [Vorname] &amp; &quot; &quot; &amp; [Nachname]<\/pre>\n<p>Leider steht dann im Bericht <b>Herr <\/b>und nicht <b>Herrn<\/b>. Dies &auml;ndert folgende Anpassung:<\/p>\n<pre>=Wenn([AnredeID]=1;&quot;Herrn&quot;;&quot;Frau&quot;) &amp; &quot; &quot; &amp; [Vorname] &amp; &quot; &quot; &amp; [Nachname]<\/pre>\n<p>Nun kann es aber auch vorkommen, dass keine Firma angegeben wurde. Dann soll die Anrede in die erste Zeile rutschen. Die erste Zeile (Textfeld <b>txtFirmaOderAnrede<\/b>) sieht dann etwa so aus:<\/p>\n<pre>=Wenn(L&auml;nge([Firma])&gt;0;[Firma];Wenn([AnredeID]=1;&quot;Herrn&quot;;&quot;Frau&quot;))<\/pre>\n<p>F&uuml;r die zweite Zeile resultiert daraus folgende Formel:<\/p>\n<pre>=Wenn(IstNull([Firma]);&quot;&quot;;Wenn([AnredeID]=1;&quot;Herrn&quot;;&quot;Frau&quot;) &amp; &quot; &quot;) &amp; [Vorname] &amp; &quot; &quot; &amp; [Nachname]<\/pre>\n<p>Das Ergebnis sieht schon recht gut aus, wie Bild 6 zeigt. Fehlt nur noch eine Behandlung von L&uuml;cken, die auftreten, wenn bestimmte Elemente wie etwa die PLZ oder die Stra&szlig;e fehlen. Bezogen auf ein komplettes Textfeld ist dies kein Problem: Stellen Sie einfach die Eigenschaft <b>Verkleinerbar <\/b>auf den Wert <b>Ja <\/b>ein. Es wird dann mit der H&ouml;he <b>0cm <\/b>angezeigt, wenn es leer ist. Die &uuml;brigen Felder rutschen entsprechend nach oben. Leider bleiben die Zwischenr&auml;ume zwischen den Feldern erhalten. Aber auch dies l&auml;sst sich verhindern: Wenn Sie den gew&uuml;nschten Zeilenabstand durch Zwischenr&auml;ume herstellen, dann k&ouml;nnen Sie die H&ouml;he der Felder auch so weit vergr&ouml;&szlig;ern, dass diese genau aneinander kleben. Die Felder d&uuml;rfen sich aber nicht ber&uuml;hren, sonst werden leere Felder nicht mehr verkleinert. Auch d&uuml;rfen sich auf der gleichen H&ouml;he keine weiteren Steuerelemente befinden, da diese ja nicht gleicherma&szlig;en minimiert werden k&ouml;nnen.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic006.png\" alt=\"pic006.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6: Ist keine Firma vorhanden, landet die Anrede in der ersten Zeile.<\/span><\/b><\/p>\n<p><b>Weitere Variante: Alles in ein Textfeld<\/b><\/p>\n<p>Sie k&ouml;nnen auch den kompletten Adressblock in einem einzigen Feld zusammenstellen. Dies ergibt dann einen mehr oder weniger &uuml;bersichtlichen Ausdruck, der eine Reihe Wenn-Bedingungen, Zeilenumbruch-Codes und verschiedene Verkn&uuml;pfungsarten (Kaufmanns-Und und Plus-Zeichen) enth&auml;lt. Den kompletten Ausdruck geben Sie dann als Steuerelement eines einzigen Textfelds an. Wir wollen an dieser Stelle nicht ins Detail gehen.<\/p>\n<p><b>Erschwernis: Liefer- und Rechnungsadressen<\/b><\/p>\n<p>In vielen F&auml;llen kommen Sie mit einer einzigen Adresse pro Kunde nicht aus. Zwar muss man nicht immer gleich wie Amazon die M&ouml;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 Bild 7 gerecht. Sie enth&auml;lt jedes Feld je einmal f&uuml;r die Liefer- und die Rechnungsanschrift, was durch entsprechende Suffixe verdeutlicht wird.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic007.png\" alt=\"pic007.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7: Tabellen mit Daten f&uuml;r Rechnungs- und Lieferadresse<\/span><\/b><\/p>\n<p>Wer keine redundanten Daten mag, wird f&uuml;r Kunden, deren Rechnungs- und Lieferanschrift identisch ist, nur eine der beiden Anschriften angeben. In diesem Fall brauchen Sie je nach ben&ouml;tigter Anschrift f&uuml;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&ouml;chten, wird dieser sehr un&uuml;bersichtlich und auch die Fehleranf&auml;lligkeit steigt. Ganz zu schweigen von der Tatsache, dass nachtr&auml;gliche &auml;nderungen eine echte Herausforderung sind.<\/p>\n<p>Dies wird etwas vereinfacht, wenn Sie sich zu ein wenig Redundanz hinrei&szlig;en lassen, wie es etwa im Beitrag <b>Liefer-, Rechnungs- und sonstige Adressen <\/b>(<b>www.access-im-unternehmen.de\/813<\/b>) beschrieben wird. Wenn Sie auch bei Vorhandensein nur einer Adresse sowohl die Rechnungs- als auch die Lieferanschrift entsprechend f&uuml;llen, brauchen Sie zwar einen Ausdruck mehr, daf&uuml;r fallen beide Ausdr&uuml;cke aber wesentlich einfacher aus.<\/p>\n<p><!--30percent--><\/p>\n<p><b>Sonderf&auml;lle<\/b><\/p>\n<p>Wahrscheinlich k&ouml;nnen Sie noch so viele Felder f&uuml;r die Eingabe von Adressdaten bereitstellen: Irgendein Kunde wird doch wieder mit der Umsetzung seiner Anschrift unzufrieden sein. Au&szlig;erdem sollten Sie m&ouml;glichst einen guten Kompromiss zwischen vielen Details bei der Aufnahme einer Kundenadresse und geringer Komplexit&auml;t finden. So w&auml;re es zum Beispiel denkbar, einfach standardm&auml;&szlig;ig die folgenden Daten abzufragen:<\/p>\n<ul>\n<li class=\"aufz-hlung\">Firma<\/li>\n<li class=\"aufz-hlung\">Anrede<\/li>\n<li class=\"aufz-hlung\">Vorname<\/li>\n<li class=\"aufz-hlung\">Nachname<\/li>\n<li class=\"aufz-hlung\">Stra&szlig;e und Hausnummer, gegebenenfalls getrennt<\/li>\n<li class=\"aufz-hlung\">PLZ<\/li>\n<li class=\"aufz-hlung\">Ort<\/li>\n<\/ul>\n<p>Wenn der Kunde seine Daten selbst eintr&auml;gt (etwa &uuml;ber ein Online-Bestellformular), fehlt ihm hier m&ouml;glicherweise etwa ein Feld, um eine Abteilung wie etwa <b>Buchhaltung <\/b>anzugeben. Sie k&ouml;nnten im Bestellformular einfach ein weiteres Feld namens <b>Abteilung <\/b>hinzuf&uuml;gen, aber andere Kunden f&uuml;hlen sich dadurch vielleicht verunsichert, weil sie nicht wissen, was sie dort eintragen sollen (und dann irgendetwas eintragen, was sp&auml;ter f&uuml;r Verwirrung sorgt). Gegebenenfalls vergr&ouml;&szlig;ern Sie im Bestellformular einfach das Feld <b>Firma <\/b>&#8211; dies ist jedoch bei vorgefertigten Online-Anwendungen auch nicht so einfach. Pfiffige Kunden tragen die Abteilung dann einfach statt eines Ansprechpartners in die Felder Vorname und Nachname ein, was dann bei automatisierter Zusammenstellung des Adressblocks zu interessanten Sch&ouml;pfungen wie dieser hier f&uuml;hrt:<\/p>\n<pre>Unity Samples\r\nHerrn Controlling\r\n11a Brookside Heights\r\n07465 WANAQUE, NJ\r\nUSA<\/pre>\n<p>Es gibt noch weitere Beispiele f&uuml;r spezielle Anforderungen: Ein Kunde m&ouml;chte ein Postfach eintragen, wei&szlig; aber nicht, wo er diese Information unterbringen soll. Oder ein Unternehmen m&ouml;chte auf jeglichem Schriftverkehr seine eigene Bestellnummer untergebracht wissen. Die L&ouml;sung f&uuml;r all diese F&auml;lle ist ein zus&auml;tzliches Feld namens <b>Bemerkungen<\/b>: Hier bringt der Kunde m&ouml;gliche weitere Hinweise unter (zum Beispiel <b>Bitte Zusatz &quot;Postfach 12345&quot; hinzuf&uuml;gen<\/b>). Als Benutzer der Datenbank zum Erstellen von Berichten mit Adressbl&ouml;cken m&uuml;ssen Sie dann nur noch gewissenhaft auf eventuelle Eintr&auml;ge im <b>Bemerkungen<\/b>-Feld achten.<\/p>\n<p><b>Mehr Redundanz als L&ouml;sung<\/b><\/p>\n<p>Die im <b>Bemerkungen<\/b>-Feld gespeicherten Hinweise oder auch die falsch eingetragenen Adressdaten m&uuml;ssen Sie irgendwann korrigieren. Wenn Ihre Kundendatenbank nur &uuml;ber die Felder <b>Firma<\/b>, <b>Vorname <\/b>und <b>Nachname <\/b>verf&uuml;gt und der Kunde die Abteilung <b>Controlling <\/b>im Feld <b>Vorname <\/b>eingetragen hat, m&uuml;ssen Sie dort Hand anlegen &#8211; ein <b>Herr Controlling <\/b>sollte Ihnen jedenfalls nicht rausrutschen (Sie ahnen es: der Autor dieser Zeilen verf&uuml;gt &uuml;ber einschl&auml;gige Erfahrung). Nur wie erledigen Sie dies Die L&ouml;sung ist eine weitere Portion Redundanz. Sie legen einfach je Adressart (also etwa f&uuml;r Lieferung und Rechnung) ein weiteres Feld etwa namens <b>Lieferadresse <\/b>und <b>Rechnungsadresse <\/b>in der Kundentabelle an. Das Feld k&ouml;nnte mit 255 Zeichen etwas zu klein sein, daher sollten Sie es als Memofeld deklarieren.<\/p>\n<p>Dieses Feld wird irgendwann vor der ersten Verwendung der Adresse in einem Bericht per VBA gef&uuml;llt, und zwar auf Basis der jeweils vorhandenen Felder. Im einfachsten Fall gibt es nur eine einzige Adresse beziehungsweise liegen die Rechnungs- und die Lieferanschrift in separaten Feldern vor (gegebenenfalls mit Redundanz, wie oben angef&uuml;hrt). Die Tabelle <b>tblAdressenEinfach<\/b> etwa w&uuml;rde dann um zwei Felder namens <b>Bemerkungen <\/b>und <b>Adresse <\/b>wie in Bild 8 erweitert.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic008.png\" alt=\"pic008.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8: Feld zum Speichern des Adressblocks<\/span><\/b><\/p>\n<p>Ein Formular zur Anzeige und Bearbeitung der Kundendaten sieht dann etwa wie in Bild 9 aus. Zus&auml;tzlich zu den beiden Feldern <b>Bemerkungen <\/b>und <b>Adresse <\/b>finden Sie dort eine Schaltfl&auml;che namens <b>cmdAktualisieren<\/b>. Diese setzt per Knopfdruck nach den g&auml;ngigen Regeln eine Adresse aus den Feldern der zugrunde liegenden Tabelle zusammen.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic009.png\" alt=\"pic009.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9: Bearbeiten von Adressdaten<\/span><\/b><\/p>\n<p>Mit einem Klick auf die Schaltfl&auml;che wird zun&auml;chst die folgende Prozedur ausgel&ouml;st, die eine weitere Routine namens <b>AdresseZusammenstellen <\/b>aufruft:<\/p>\n<pre>Private Sub cmdAktualisieren_Click()\r\n    AdresseZusammenstellen\r\nEnd Sub<\/pre>\n<p>Die Prozedur <b>AdresseZusammenstellen<\/b> finden Sie in <span class=\"verweis-ohneumbruch\"><a href=\"#anker-44-anchor\">Listing 1<\/a><\/span>. Sie pr&uuml;ft zun&auml;chst den Wert des Feldes <b>AnredeID <\/b>und schreibt den entsprechenden Ausdruck, also <b>Herrn <\/b>oder <b>Frau<\/b>, in die Variable <b>strAnrede<\/b>. Der n&auml;chste Schritt ber&uuml;cksichtigt, ob der Kunde eine Firma angegeben hat oder nicht. Ist dies der Fall, wird die Firma in die erste Zeile geschrieben und die Anrede landet mit <b>Vorname <\/b>und <b>Nachname <\/b>in der zweiten Zeile. Ist keine Firma vorhanden, geh&ouml;rt die Anrede in die erste Zeile und <b>Vorname <\/b>und <b>Nachname <\/b>in die zweite. Dabei kann es vorkommen, dass beispielsweise kein Vorname angegeben wurde. In diesem Fall f&auml;llt auch das durch das Plus-Zeichen (+) verkn&uuml;pfte Leerzeichen weg (das Pluszeichen arbeitet im Prinzip wie das Kaufmanns-Und, liefert jedoch den Null-Wert als Ergebnis, wenn einer der zu verkn&uuml;pfenden Ausdr&uuml;cke Null ist). F&uuml;r den Zeilenumbruch zwischen Anrede\/Firma und Anrede\/Vorname\/Nachname sorgt die Konstante <b>vbCrLf<\/b>.<\/p>\n<p class=\"listingueberschrift\">Listing 1: Zusammenstellen einer Adresse auf Basis der g&auml;ngigen Adressfelder<\/p>\n<pre>Private Sub AdresseZusammenstellen()\r\n    Dim strAdresse As String\r\n    Dim strAnrede As String\r\n    If Me!AnredeID = 1 Then\r\n        strAnrede = &quot;Herrn&quot;\r\n    Else\r\n        strAnrede = &quot;Frau&quot;\r\n    End If\r\n    If IsNull(Me!Firma) Then\r\n        strAdresse = strAdresse &amp; strAnrede\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!Vorname &amp; &quot; &quot; &amp; Me!Nachname\r\n    Else\r\n        strAdresse = strAdresse &amp; Me!Firma\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; strAnrede &amp; &quot; &quot; + Me!Vorname &amp; &quot; &quot; + Me!Nachname\r\n    End If\r\n    If Not IsNull(Me!Strasse) Then\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!Strasse\r\n    End If\r\n    If Me!Land = &quot;Deutschland&quot; Then\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!PLZ &amp; &quot; &quot; &amp; Me!Ort\r\n    Else\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!PLZ &amp; &quot; &quot; &amp; StrConv(Me!Ort, vbUpperCase)\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!Land\r\n    End If\r\n    Me!txtAdresse = strAdresse\r\nEnd Sub<\/pre>\n<p>Die folgende Zeile soll mit der Stra&szlig;e gef&uuml;llt werden, sofern diese vorhanden ist &#8211; auch hier wird ein <b>vbCrLf<\/b> vorangestellt, damit die Stra&szlig;e nicht in der gleichen Zeile wie der Name landet.<\/p>\n<p><b>PLZ <\/b>und <b>Ort <\/b>werden schlie&szlig;lich zusammengefasst und in die n&auml;chste Zeile geschrieben. Hier wird allerdings zuvor gepr&uuml;ft, ob das Feld <b>Land <\/b>den Wert <b>Deutschland <\/b>enth&auml;lt. In diesem Fall werden PLZ und Ort einfach hinzugef&uuml;gt. Falls es sich um ein anderes Land handelt, wird der Name des Orts in gro&szlig;en Buchstaben dargestellt. Die notwendige Umwandlung nimmt die Funktion <b>StrConv <\/b>mit dem Wert <b>vbUpperCase <\/b>als zweitem Parameter vor. F&uuml;r Auslandsadressen soll au&szlig;erdem das Land in Gro&szlig;buchstaben angegeben werden, und zwar in der folgenden, letzten Zeile.<\/p>\n<p>Das Ergebnis sieht etwa wie in Bild 11). Der Vorteil: Sie erledigen dies nur einmal und brauchen sich anschlie&szlig;end nicht mehr um solche Feinheiten zu k&uuml;mmern.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic010.png\" alt=\"pic010.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 10: Eine per Knopfdruck zusammengestellte Adresse<\/span><\/b><\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic011.png\" alt=\"pic011.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 11: Nachtr&auml;gliches Anpassen von Adressen<\/span><\/b><\/p>\n<p><b>&auml;nderung der Adresse<\/b><\/p>\n<p>Was aber geschieht, wenn Sie eines oder mehrere Felder der Adresse auf Kundenanfrage hin &auml;ndern F&uuml;r diesen Fall sollten Sie eine Funktion in das Formular integrieren, die Sie vor dem Speichern von &auml;nderungen an den betroffenen Feldern darauf aufmerksam macht, dass diese &auml;nderungen gegebenenfalls auf die Daten des Adressblocks &uuml;bertragen werden m&uuml;ssen.<\/p>\n<p>Im einfachsten Fall schreiben Sie bei vorgenommenen &auml;nderungen einfach den Wert <b>True <\/b>in eine Variable, die wie folgt im Kopf des Formularmoduls deklariert wird:<\/p>\n<pre>Dim bolGeaendert As Boolean<\/pre>\n<p>Diese wird bei &auml;nderung mindestens eines der betroffenen Felder auf <b>True <\/b>eingestellt. F&uuml;r das Feld <b>Firma<\/b>, das im Steuerelement <b>txtFirma <\/b>dargestellt wird, legen Sie dazu etwa eine Ereignisprozedur f&uuml;r das Ereignis <b>Nach Ge&auml;ndert<\/b> an:<\/p>\n<pre>Private Sub txtFirma_Dirty(Cancel As Integer)\r\n    bolGeaendert = True\r\nEnd Sub<\/pre>\n<p>Die Variable <b>bolGeaendert <\/b>wird vor dem Speichern des Datensatzes in der Prozedur ausgewertet, die durch das Ereignis <b>Vor Aktualisierung <\/b>des Formulars ausgel&ouml;st wird:<\/p>\n<pre>Private Sub Form_BeforeUpdate(Cancel As Integer)\r\n    If bolGeaendert Then\r\n        MsgBox &quot;Es wurden Adressdaten im Formular ge&auml;ndert, die nicht in den Adressblock &uuml;bertragen wurden.&quot;\r\n    End If\r\n    bolGeaendert = False\r\nEnd Sub<\/pre>\n<p>Dadurch wird schlicht eine Meldung angezeigt, dass die Adressdaten des Kunden unabh&auml;ngig von den f&uuml;r den Adressblock gespeicherten Daten ge&auml;ndert wurden.<\/p>\n<p><b>Adressblock automatisch hinzuf&uuml;gen<\/b><\/p>\n<p>Beim Anlegen einer Adresse und dem anschlie&szlig;enden Speichern soll der Adressblock direkt automatisch erstellt werden, ohne dass der Benutzer erst noch auf die Schaltfl&auml;che <b>cmdAktualisieren <\/b>klicken muss. Daf&uuml;r sorgt die Erweiterung aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-47-anchor\">Listing 2<\/a><\/span>. Sie pr&uuml;ft beim Aktualisieren des Datensatzes, ob der Adressblock bereits zusammengestellt wurde, und erledigt dies gegebenenfalls.<\/p>\n<p class=\"listingueberschrift\">Listing 2: Meldung oder automatisches Zusammenstellen des Adressblocks<\/p>\n<pre>Private Sub Form_BeforeUpdate(Cancel As Integer)\r\n    If bolGeaendert Then\r\n        If IsNull(Me!Adresse) Then\r\n            AdresseZusammenstellen\r\n        Else\r\n            MsgBox &quot;Es wurden Adressdaten im Formular ge&auml;ndert, die nicht in den Adressblock &uuml;bertragen wurden.&quot;\r\n        End If\r\n    End If\r\nEnd Sub<\/pre>\n<p>Falls die Funktion zum Zusammenstellen des Adressblocks erst nachtr&auml;glich zum Formular hinzugef&uuml;gt wurde, m&ouml;chten Sie den Adressblock gegebenenfalls sp&auml;testens beim Anzeigen eines der Datens&auml;tze vorfinden. Dann k&ouml;nnen Sie das Zusammensetzen durch die Ereignisprozedur ansto&szlig;en lassen, die durch das Ereignis <b>Beim Anzeigen <\/b>ausgel&ouml;st wird:<\/p>\n<pre>Private Sub Form_Current()\r\n    If IsNull(Me!Adresse) Then\r\n        AdresseZusammenstellen\r\n    End If\r\nEnd Sub<\/pre>\n<p><b>Nachtr&auml;gliche &auml;nderungen automatisch in den Adressblock &uuml;bernehmen<\/b><\/p>\n<p>In den meisten F&auml;llen reicht die automatische Funktion zum Zusammenstellen des Adressblocks aus &#8211; manuelle, nachtr&auml;gliche Anpassungen kommen hoffentlich nur in wenigen F&auml;llen vor. Anderenfalls sollten Sie vielleicht pr&uuml;fen, ob der Algorithmus zum Zusammenstellen des Adressblocks nicht optimiert werden kann.<\/p>\n<p>In der aktuellen Version erscheint bei &auml;nderungen an einem der Felder <b>Firma<\/b>, <b>AnredeID<\/b>, <b>Vorname<\/b>, <b>Nachname<\/b>, <b>Strasse<\/b>, <b>PLZ<\/b>, <b>Ort <\/b>und <b>Land <\/b>eine Meldung, die darauf hinweist, dass die Adressdaten ge&auml;ndert wurden, ohne diese &auml;nderungen auf den Adressblock im Feld <b>Adresse <\/b>zu &uuml;bertragen.<\/p>\n<p>Der Benutzer muss in diesem Fall selbst Hand anlegen und sich erst noch einmal vergegenw&auml;rtigen, welche &auml;nderungen er vorgenommen hat, um diese gegebenenfalls manuell in das Feld mit dem Adressblock zu &uuml;bertragen. Wenn der Adressblock seinerseits in der vorherigen Version keine manuellen &auml;nderungen enth&auml;lt, kann dieser gleich mit einem Klick auf die Schaltfl&auml;che <b>Aktualisieren <\/b>angepasst werden.<\/p>\n<p>Aber wie bekommt der Benutzer auf die Schnelle heraus, ob und welche manuellen &auml;nderungen am Adressblock durchgef&uuml;hrt wurden Die Antwortet: Er braucht es gar nicht. Die Meldung erscheint am besten nur, wenn im Feld <b>Adresse <\/b>tats&auml;chlich manuelle &auml;nderungen vorgenommen wurden. Um dies zu pr&uuml;fen, f&uuml;gen wir eine weitere kleine Prozedur zum Formularmodul hinzu. Diese soll vor dem Aktualisieren des Datensatzes bei &auml;nderungen pr&uuml;fen, ob der Adressblock &uuml;berhaupt manuell ge&auml;ndert wurde oder ob dieser aus den zuvor vorliegenden Daten erzeugt wurde.<\/p>\n<p>Den Aufruf dieser Funktion, die entweder den Wert <b>True <\/b>oder <b>False <\/b>zur&uuml;ckliefert, integrieren wir in die abermals erweiterte Ereignisprozedur <b>Vor Aktualisierung <\/b>des Formulars (s. <span class=\"verweis-ohneumbruch\"><a href=\"#anker-50-anchor\">Listing 3<\/a><\/span>). Wenn das Adressfeld nicht Null ist, folgt der Aufruf der Funktion <b>IstAdresseManuellGeaendert<\/b>.<\/p>\n<p class=\"listingueberschrift\">Listing 3: Pr&uuml;fung, ob eine Adresse manuell ge&auml;ndert wurde<\/p>\n<pre>Private Sub Form_BeforeUpdate(Cancel As Integer)\r\n    If bolGeaendert Then\r\n        If IsNull(Me!Adresse) Then\r\n            AdresseZusammenstellen\r\n        Else\r\n            If IstAdresseManuellGeaendert Then\r\n                MsgBox &quot;Es wurden Adressdaten im Formular ge&auml;ndert, die nicht in den Adressblock &uuml;bertragen wurden.&quot;\r\n            Else\r\n                AdresseZusammenstellen\r\n            End If\r\n        End If\r\n    End If\r\nEnd Sub<\/pre>\n<p>Wurde die Adresse manuell ge&auml;ndert, wird die aktuelle Version des Textes im Feld <b>Adresse <\/b>beibehalten und eine entsprechende Meldung ausgegeben. Anderenfalls wird einfach die Prozedur <b>AdresseZusammenstellen <\/b>aufgerufen, um eine neue Version des Adressblocks zusammenzustellen und im Feld <b>Adresse <\/b>zu speichern.<\/p>\n<p>Die Funktion <b>IstAdresseManuellGeaendert <\/b>aus <span class=\"verweis-ohneumbruch\"><a href=\"#anker-48-anchor\">Listing 4<\/a><\/span> pr&uuml;ft, ob der aktuell im Feld <b>Adresse <\/b>gespeicherte Adressblock zu den Werten der Felder <b>Firma<\/b>, <b>AnredeID<\/b>, <b>Vorname<\/b>, <b>Nachname<\/b>, <b>Strasse<\/b>, <b>PLZ<\/b>, <b>Ort <\/b>und <b>Land <\/b>passt. Sie ist prinzipiell wie die Prozedur <b>AdresseZusammenstellen <\/b>aufgebaut und erledigt grunds&auml;tzlich die gleiche Aufgabe.<\/p>\n<p class=\"listingueberschrift\">Listing 4: Diese Funktion untersucht den Adressblock auf manuell hinzugef&uuml;gte Elemente<\/p>\n<pre>Private Function IstAdresseManuellGeaendert() As Boolean\r\n    Dim strAdresse As String\r\n    Dim strAnrede As String\r\n    If Me!cboAnredeID.OldValue = 1 Then\r\n        strAnrede = &quot;Herrn&quot;\r\n    Else\r\n        strAnrede = &quot;Frau&quot;\r\n    End If\r\n    If IsNull(Me!txtFirma.OldValue) Then\r\n        strAdresse = strAdresse &amp; strAnrede\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!txtVorname.OldValue &amp; &quot; &quot; &amp; Me!txtNachname.OldValue\r\n    Else\r\n        strAdresse = strAdresse &amp; Me!txtFirma.OldValue\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; strAnrede &amp; &quot; &quot; + Me!txtVorname.OldValue &amp; &quot; &quot; + Me!txtNachname.OldValue\r\n    End If\r\n    If Not IsNull(Me!txtStrasse.OldValue) Then\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!txtStrasse.OldValue\r\n    End If\r\n    If Me!Land = &quot;Deutschland&quot; Then\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!txtPLZ.OldValue &amp; &quot; &quot; &amp; Me!txtOrt.OldValue\r\n    Else\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!txtPLZ.OldValue &amp; &quot; &quot; &amp; StrConv(Me!txtOrt.OldValue, vbUpperCase)\r\n        strAdresse = strAdresse &amp; vbCrLf &amp; Me!txtLand.OldValue\r\n    End If\r\n    If Not (Me!txtAdresse = strAdresse) Then\r\n        IstAdresseManuellGeaendert = True\r\n    End If\r\nEnd Function<\/pre>\n<p>Allerdings greift sie nicht auf die aktuellen Werte des Formulars zu, sondern liest aus der Eigenschaft <b>OldValue <\/b>die Werte ein, die beim &Ouml;ffnen des Datensatzes vorlagen. Auf Basis dieser Daten stellt sie den Adressblock auf die gleiche Weise wie in der Prozedur <b>AdresseZusammenstellen <\/b>zusammen und vergleicht das Ergebnis mit dem aktuellen Inhalt des Feldes <b>Adresse<\/b>. Stimmen beide Ausdr&uuml;cke &uuml;berein, wurde das Feld <b>Adresse <\/b>seit der letzten &auml;nderung nicht manuell ge&auml;ndert.<\/p>\n<p><b>Adressblock im Bericht<\/b><\/p>\n<p>Kommen wir zum eigentlichen Anlass dieses Beitrags: der Anzeige des Adressblocks in einem Bericht. Um einen solchen f&uuml;r den aktuellen Datensatz zu &ouml;ffnen, verwenden Sie etwa eine Prozedur wie diese:<\/p>\n<pre>Private Sub cmdBericht_Click()\r\n    DoCmd.OpenReport &quot;rptAdresse&quot;, acViewPreview, WhereCondition:=&quot;AdresseID = &quot; &amp; Me!AdresseID\r\nEnd Sub<\/pre>\n<p>Ein einfacher Bericht, der schlicht an die Tabelle <b>tblAdressenEinfach<\/b> gebunden ist und als einziges Steuerelement das Feld <b>Adresse<\/b> anzeigt, sieht dementsprechend wie in Bild 12 aus.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2012_01\/AdressenFuerBerichte-web-images\/pic012.png\" alt=\"pic012.png\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 12: Adressblock im Bericht<\/span><\/b><\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Das Zusammenstellen von Adressen erzeugt mit der hier vorgestellten Methode zwar redundante Daten, aber daf&uuml;r enthalten die Adressfelder auch die gew&uuml;nschten Werte. Eventuell vorliegende Sonderw&uuml;nsche der Kunden bez&uuml;glich der Adresse k&ouml;nnen Sie hier einpflegen und dauerhaft beibehalten.<\/p>\n<p>&auml;nderungen werden bemerkt und entweder automatisch durchgef&uuml;hrt oder aber zumindest dem Benutzer gemeldet.<\/p>\n<p>Wenn Sie eine Tabelle mit Rechnungs- und Lieferanschriften verwenden, bei denen gegebenenfalls nur eine Anschrift angegeben ist, entsteht noch leicht h&ouml;herer Aufwand beim Zusammenstellen des Adressblocks. Da dieser jedoch nur einmal anf&auml;llt, sollte dies kein gro&szlig;es Hindernis darstellen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>AdressenFuerBerichte.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{ABFA7264-8957-46AC-BD01-657A6616568C}\/aiu_817.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &#8211; fertig! Aber halt: Manchmal ist es doch nicht so einfach. Wenn beispielsweise Adresselemente wie die Stra&szlig;e fehlen, kommt es mitunter zu unsch&ouml;nen L&uuml;cken im Adressblock. Aber auch die L&ouml;sung zu diesem Problem ist bereits bekannt. Dieser Beitrag stellt kurz die g&auml;ngigen Vorgehensweisen vor und zeigt dann eine alternative Methode, um Adressbl&ouml;cke perfekt zusammenzustellen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66012012,662012,44000024],"tags":[],"class_list":["post-55000817","post","type-post","status-publish","format-standard","hentry","category-66012012","category-662012","category-Berichte_und_Reporting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Adressen f&uuml;r Berichte aufbereiten - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adressen f&uuml;r Berichte aufbereiten\" \/>\n<meta property=\"og:description\" content=\"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&szlig;e fehlen, kommt es mitunter zu unsch&ouml;nen L&uuml;cken im Adressblock. Aber auch die L&ouml;sung zu diesem Problem ist bereits bekannt. Dieser Beitrag stellt kurz die g&auml;ngigen Vorgehensweisen vor und zeigt dann eine alternative Methode, um Adressbl&ouml;cke perfekt zusammenzustellen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:52:32+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/715215e698ff49aca9a7c5fe220b8f9f\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"19\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Adressen f&uuml;r Berichte aufbereiten\",\"datePublished\":\"2020-05-22T21:52:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/\"},\"wordCount\":3140,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/715215e698ff49aca9a7c5fe220b8f9f\",\"articleSection\":[\"1\\\/2012\",\"2012\",\"Berichte und Reporting\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/\",\"name\":\"Adressen f&uuml;r Berichte aufbereiten - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/715215e698ff49aca9a7c5fe220b8f9f\",\"datePublished\":\"2020-05-22T21:52:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/715215e698ff49aca9a7c5fe220b8f9f\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/715215e698ff49aca9a7c5fe220b8f9f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Adressen_fuer_Berichte_aufbereiten\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adressen f&uuml;r Berichte aufbereiten\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Adressen f&uuml;r Berichte aufbereiten - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/","og_locale":"de_DE","og_type":"article","og_title":"Adressen f&uuml;r Berichte aufbereiten","og_description":"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&szlig;e fehlen, kommt es mitunter zu unsch&ouml;nen L&uuml;cken im Adressblock. Aber auch die L&ouml;sung zu diesem Problem ist bereits bekannt. Dieser Beitrag stellt kurz die g&auml;ngigen Vorgehensweisen vor und zeigt dann eine alternative Methode, um Adressbl&ouml;cke perfekt zusammenzustellen.","og_url":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:52:32+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/715215e698ff49aca9a7c5fe220b8f9f","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"19\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Adressen f&uuml;r Berichte aufbereiten","datePublished":"2020-05-22T21:52:32+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/"},"wordCount":3140,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/715215e698ff49aca9a7c5fe220b8f9f","articleSection":["1\/2012","2012","Berichte und Reporting"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/","url":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/","name":"Adressen f&uuml;r Berichte aufbereiten - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/715215e698ff49aca9a7c5fe220b8f9f","datePublished":"2020-05-22T21:52:32+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/715215e698ff49aca9a7c5fe220b8f9f","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/715215e698ff49aca9a7c5fe220b8f9f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Adressen_fuer_Berichte_aufbereiten\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Adressen f&uuml;r Berichte aufbereiten"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000817"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000817\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}