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

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2006.

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

Erstellen Sie Ihren eigenen Newsletter im Text- und im HTML-Format.

Techniken

VBA, Zeichenkettenfunktionen

Voraussetzungen

Access 2000 und höher

Beispieldatenbank

accessNewsletter00.mdb

Newsletter-Creator

André Minhorst, Duisburg

Das Internet nimmt immer größeren Einfluss auf unser Leben. Informationen finden, E-Mails verschicken, Einkäufe tätigen, das Inventar des Dachbodens bei eBay verramschen, Bankgeschäfte erledigen - das kennen Sie alles. In letzter Zeit nehmen auch immer mehr Menschen am Internet-Leben teil, indem sie einen Teil von sich selbst im Internet offenbaren - sei es in Form einer herkömmlichen Webseite oder eines Blogs. Andere Menschen wiederum versenden Informationen als Newsletter - und hier greift die Musterlösung dieses Artikels an: Damit wird das Newsletter-Schreiben zum Kinderspiel.

Newsletter - ganz einfach?

"Was will der Autor uns sagen?", denken Sie jetzt vielleicht. Wo soll das Problem beim Zusammenstellen eines Newsletters liegen? Mit Word oder einem Texteditor kann man doch schnell seine Informationen zusammenschreiben, den Text in eine Outlook-Mail packen, die Empfänger oder die Verteilerliste auswählen und ab damit.

Nun, wenn Sie etwas anspruchsvoller sind, hängt damit schon eine Menge Arbeit zusammen. Das beginnt mit der Frage, ob Sie den Newsletter im reinen Text- oder im HTML-Format versenden. Im ersten Fall funktioniert das Ganze noch relativ einfach: Dann brauchen Sie tatsächlich nicht viel mehr zu tun, als soeben beschreiben. Oder versenden Sie den Newsletter im HTML-Format? Falls ja: Haben Sie schon einmal an die Benutzer von rein textbasierten E-Mail-Clients gedacht? Ach, davon gibt es nicht so viele? Und was ist mit den Benutzern populärer E-Mail-Clients wie Outlook, die E-Mails nur im Textformat anzeigen lassen? Die schönen Bildchen und Formatierungen, die Sie im Newsletter untergebracht haben, kommen dort gar nicht zur Geltung. Statt dessen erhält der Leser vielleicht einen völlig verunstalteten Text präsentiert.

Wäre es nicht eine gute Idee, einen Newsletter zu versenden, der alternativ die jeweils gewünschte Darstellungsart unterstützt - also Plaintext und HTML? Das ist gar nicht so kompliziert - mehr darüber erfahren Sie im Artikel Serien-E-Mails mit Komfort (Shortlink 380) in der folgenden Ausgabe.

Dort lernen Sie ein Tool kennen, mit dem das Versenden kombinierter Plaintext/HTML-Mails zum Kinderspiel wird, und das auch noch inklusive persönlicher Gestaltung der Mails etwa durch die Anrede des Lesers mit seinem Namen.

"Aber", kommt Ihnen in den Sinn, "dann müsste ich ja auch zwei Versionen des gleichen Newsletters erstellen - nur, weil die Leute sich nicht auf eine Darstellungsart für E-Mails einigen können?" Das ist richtig, aber: Mit dem nachfolgend vorgestellten Tool erledigen Sie das im Vorbeigehen. Damit geben Sie nur den reinen Inhalt und ein paar weitere Informationen ein, den Rest erledigt das Tool für Sie:

Abb. 1: Hauptformular des Newsletter-Creators

  • E-Mails im Plaintext- und HTML-Format
  • Automatisches Formatieren inklusive Zeilenumbruch nach x Zeichen (üblicherweise 72)
  • Einbetten der Artikel in eine übersichtliche Tabellenstruktur im HTML-Newsletter
  • Konsistentes Layout über alle Artikel
  • Erstellen neuer Newsletter auf Basis bestehender Newsletter
  • Einfaches Anpassen der Reihenfolge der Artikel
  • Einsatz verschiedener Rubriken mit Rubrikenkopf und (in HTML-Newslettern) mit rubrikenabhängigem Symbol
  • Newsletter zusammenstellen

    Der Newsletter-Creator vereinfacht das Zusammenstellen eines Newsletters enorm. Das gilt umso mehr, wenn Sie regelmäßig Newsletter erstellen und vielleicht den einen oder anderen Beitrag vorheriger Newsletter übernehmen. Aber schauen Sie doch einfach selbst.

    Abb. 1 zeigt die Ansicht, die Sie beim Öffnen der Anwendung empfängt (gegebenenfalls noch ohne Daten). Dieses Formular ist das Hauptformular der Anwendung, von dem aus der Benutzer alle weiteren Aktionen initiiert. Es zeigt jeweils die Informationen zu einem Newsletter und zu den enthaltenen Artikeln an. In der oberen Hälfte des Formulars befinden sich drei Bereiche: Der Bereich Newsletter-Details enthält grundlegende Informationen zum Newsletter selbst - Erscheinungsdatum, Anzahl der Abonnenten, Bezeichnung des Newsletters und einen Kurztext. Der zweite Bereich mit der Beschriftung "Bild für HTML-Version" erlaubt die Angabe einer Bilddatei, die in der HTML-Version des Newsletters zum Tragen kommt.

    Abb. 2: Eingabe der Details eines Newsletters

    Abb. 3: Ausgabe des Newsletter-Kopfes im Textformat

    Darunter finden Sie noch einige Schaltflächen, mit denen Sie einen neuen Newsletter anlegen oder den Inhalt des aktuellen Newsletters in der Text- oder der HTML-Version anzeigen können. Einen neuen Newsletter können Sie auf zwei Arten erstellen: entweder in Form eines leeren Newsletters oder als Kopie des aktuell angezeigten Newsletters.

    Die untere Hälfte dient dem Bearbeiten des eigentlichen Inhalts des Newsletters - den enthaltenen Artikeln. Das Listenfeld auf der rechten Seite bietet einen Überblick über die Artikel, das Unterformular in der rechten Hälfte zeigt den Inhalt und die Eigenschaften eines jeden Artikels an.

    Aufbau eines Newsletters

    Schauen Sie sich doch einmal die gängigen Newsletter an: Sie sind immer ähnlich aufgebaut. Meist gibt es einen einführenden Teil, der Infor

    mationen über den Newsletter selbst wie den Titel oder das Erscheinungsdatum enthält, die einzelnen Artikel (gegebenenfalls in mehrere Kategorien eingeteilt) und das Impressum.

    Der Newsletter-Creator unterstützt diesen Aufbau zu 100 Prozent.

    Einen Newsletter anlegen

    Das Anlegen eines neuen Newsletters beginnt mit einem leeren Formular. Am besten geben Sie zunächst die Daten im Bereich Newsletter-Details ein (s. Abb. 2). Die hier eingegebenen Informationen finden Sie im Newsletter später wie in Abb. 3 (Textformat) wieder - die HTML-Ausgabe ist genauso aufgebaut.

    Anschließend können Sie direkt mit dem eigentlichen Inhalt beginnen. Dieser kann sich aus einem oder mehreren Artikeln in unterschiedlichen Kategorien zusammensetzen. Die Eingabe erfolgt in dem Bereich des Formulars, der in Abb. 4 abgebildet ist. Dieser enthält folgende Elemente:

  • Überschrift: Die Überschrift dient vor allem der Identifizierung des Artikels in der Auflistung der Artikel des aktuellen Newsletters. Zusätzlich können Sie die Überschrift im Artikel anzeigen lassen. Auch das Ersetzen der Rubrik ist möglich.
  • Überschrift anzeigen: Diese Option legt fest, ob die Überschrift auch im Newsletter oder nur in der Übersichtsliste angezeigt werden soll.
  • Überschrift statt Rubrik: Diese Option ermöglicht es, die angegebene (im Newsletter hervorgehobene) Kategorie durch den Überschriftstext zu ersetzen.
  • Inhalt: Der eigentliche Artikel.
  • Abb. 4: Eingeben eines Artikels

    Abb. 5: Beispiel für einen Artikel im Newsletter im Textformat

    Abb. 6: Anlegen einer neuen Rubrik

  • Linktext: Dieser Text steht separat zwischen Artikel und Link, er kann Texte wie etwa "Weitere Informationen finden Sie hier" enthalten.
  • Link: Enthält eine URL, am besten angeführt von http://. Viele E-Mail-Clients erlauben nur solcherart markierte Links innerhalb von Textmails zum Aufrufen der angegebenen Internetseite.
  • Reihenfolge: Gibt die aktuelle Reihenfolgenposition des Artikels im Newsletter an.
  • Rubrik: Gibt die Rubrik des aktuellen Artikels an. Mit der Schaltfläche neben dem Textfeld öffnen Sie einen Dialog zum Anlegen einer neuen Rubrik.
  • Abb. 5 zeigt, wie der Artikel aus Abb. 4 in der Newsletter-Ausgabe im Textformat aussehen wird. Die Kategorie ist sauber vom restlichen Inhalt getrennt, die Überschrift durch führende Sonderzeichen markiert und der Inhalt, der Linktext und der Link folgen mit jeweils einer Leerzeile Abstand.

    Anlegen neuer Rubriken

    Mit einem Klick auf die Schaltfläche rechts neben dem Auswahlfeld der Rubrik öffnen Sie den Dialog aus Abb. 6. Hier geben Sie den Namen der Rubrik ein und aktivieren mit einem Doppelklick auf das Bildsteuerelement einen Dialog zum Auswählen eines Symbols. Dieses finden Sie später in der HTML-Ausgabe des Newsletters zur optischen Auflockerung wieder. Wie das aussehen kann, zeigt Abb. 7.

    Abb. 7: Beispiel für die HTML-Ausgabe eines Artikels mit Rubrik-Symbol

    Abb. 8: Die Artikelliste nach der Eingabe einiger Artikel

    Mehrere Artikel einer Rubrik zusammenfassen

    Die Rubrikzeile soll nicht für jeden Artikel angezeigt werden. Wenn mehrere Artikel mit der gleichen Rubrik hintereinander folgen, fasst das Tool diese Artikel zusammen und zeigt die Rubrikenüberschrift nur einmal an.

    Artikel verwalten

    Abb. 9: Auswählen eines bestehenden Artikels

    Mit der Artikelliste im linken, unteren Teil des Hauptformulars verwalten Sie die Artikel. Ein neuer Artikel wird immer unten an die Liste angefügt. Früher oder später taucht hier der Wunsch auf, die Artikel in die richtige Reihenfolge zu bringen. Das ist kein Problem, da die Artikel-Datensätze ein Feld zum Speichern der Position innerhalb des Newsletters aufweisen. Mit der dritten und vierten Schaltfläche von links können Sie den aktuell markierten Eintrag nach oben oder unten verschieben.

    Wenn der Artikel-Detailbereich gerade einen Artikel anzeigt und Sie einen neuen Artikel anlegen möchten, verwenden Sie die Schaltfläche ganz links unterhalb der Artikelliste. Zum Löschen eines Artikels dient die zweite Schaltfläche von links. Achtung: Gelöschte Artikel verschwinden für alle Zeiten im (Datenbank-)Nirvana.

    Fehlt noch die Taste ganz rechts (s. Abb. 8): Sie dient dazu, einen bereits einmal eingegebenen Artikel erneut hinzuzufügen. Das ist sinnvoll, wenn Artikel beispielsweise in mehreren Newslettern hintereinander abgedruckt werden sollen (beispielsweise Werbung oder das Impressum). Diese Schaltfläche öffnet einen Dialog mit einem Kombinationsfeld zur Auswahl eines der bisher eingegebenen Artikel (s. Abb. 9).

    Neuen Newsletter anlegen

    Einen neuen Newsletter können Sie auf verschiedenen Wegen und mit zwei unterschiedlichen Ergebnissen anlegen: Zum Anlegen eines komplett leeren Newsletters klicken Sie entweder auf die Schaltfläche Leerer Newsletter (s. Abb. 10) oder Sie verwenden einen der von Access vorgesehenen Wege - etwa die passende Schaltfläche der Navigationsleiste.

    Abb. 10: Anlegen eines neuen Newsletters aus dem Stegreif und auf Basis eines vorhandenen Newsletters

    Abb. 11: Möglichkeiten der Ausgabe

    Abb. 12: Ausgabe des Newsletters im Textformat

    Abb. 13: Ausgabe des HTML-Newsletters als Quellcode und im Browser-Fenster

    Die Alternative ist die Schaltfläche Diesen Newsletter kopieren. Mit einem Klick auf diese Schaltfläche erzeugen Sie eine Kopie des aktuell angezeigten Newsletters inklusive aller Artikel und springen direkt zu diesem Datensatz.

    Anzeigen des Newsletters

    Fehlt noch die Ausgabe: Diese kann, wie bereits eingangs erwähnt, im Text- sowie im HTML-Format erfolgen.

    Anzeigen im Textformat

    Die Schaltfläche Textversion ausgeben stellt auf Basis der eingegebenen Informationen einen Newsletter zusammen (s. Abb. 11) und gibt diesen in einem weiteren Formular aus
    (s. Abb. 12).

    Den Inhalt des Newsletters können Sie entweder markieren und kopieren, um diesen zum Versand in eine andere Anwendung einzufügen, oder Sie speichern den Inhalt in einer Textdatei. Diese heißt standardmäßig Newsletter.txt und befindet sich im Verzeichnis der Datenbank.

    Anzeigen im HTML-Format

    Die Ausgabe im HTML-Format erfolgt in einem Formular mit zwei Ansichten: als HTML-Quellcode und im Browser-Steuerelement
    (s. Abb. 13).

    Auch hier haben Sie die Möglichkeit, den Quellcode zu kopieren oder diesen in einer Datei namens Newsletter.html im Datenbankverzeichnis zu speichern.

    Datenmodell

    Nach der ausführlichen Beschreibung der Anwendung folgt nun das Datenmodell. Dieses ist recht überschaubar und offeriert eine flexible Zusammenstellung der Newsletter.

    Abb. 14 zeigt die drei beteiligten Tabellen. Schnell abgehakt ist die Tabelle tblRubriken. Sie enthält lediglich ein Primärschlüsselfeld namens RubrikID, ein Textfeld zum Speichern des Namens der Rubrik und ein weiteres zum Speichern des Bildpfades. Es wäre ein Leichtes gewesen, die Rubrikenbilder ebenfalls in der Datenbank zu speichern, aber diese werden ja zur Anzeige in der HTML-Version des Newsletters ohnehin extern benötigt.

    Die Tabelle tblArtikel enthält Felder zum Speichern der weiter oben bereits eingehend vorgestellten Eigenschaften sowie ein Fremdschlüsselfeld zur Herstellung der Beziehung mit der Tabelle tblRubriken.

    Auch die Tabelle tblNewsletter bietet nicht viel mehr als die bekannten Felder: Lediglich die beiden Felder HTMLHeaderWidth und HTMLHeaderHeight sind noch nicht bekannt; diese werden beim Einlesen des Dateinamens der Header-Datei für die HTML-Version des Newsletters ermittelt und gespeichert. Diese Informationen sind für die Erstellung der HTML-Variante des Newsletters wichtig.

    Abb. 14: Datenmodell des Newsletter-Creators

    Technik

    Die Beschreibung der Programmierung der kompletten Anwendung würde leider den Rahmen dieses Beitrags sprengen. Insgesamt betrachtet enthält die Anwendung auch keine besonders anspruchsvollen Techniken. Was könnte also so interessant sein, es dem geneigten Leser näher zu erläutern? Nun - möglicherweise möchten Sie ja die Ausgabe eines der beiden Formate Ihren eigenen Bedürfnissen anpassen. Dabei ist ein grundlegendes Verständnis der vorhandenen Prozeduren sicher hilfreich, weshalb wir Ihnen an dieser Stelle das Erzeugen des textbasierten Newsletters vorstellen. Zuvor jedoch noch einige allgemeine Anmerkungen:

  • Die Datenbank verwendet einige Routinen aus dem Modul mdlGDIPlus, das ausführlich im Beitrag Bilder im Griff mit VBA und GDI+ (Shortlink 337) erläutert wurde.
  • Als Bildsteuerelement verwendet die Anwendung das Image-Steuerelement der Bibliothek MSForms, das standardmäßig mit Office installiert wird.
  • Das Hauptformular frmNewsletter und das Unterformular frmArtikel verwenden beide das CommandButton-Steuerelement der MSForms-Bibliothek, das einige Vorteile gegenüber der Standardschaltfläche von Access bietet: So können Sie damit leicht transparente Icons und Text gleichzeitig anzeigen. Weitere Informationen hierzu finden Sie im Beitrag Alternative Schaltflächen (Shortlink 323).
  • Die Symbole der Schaltflächen in den oben genannten Formularen sind in verschiedenen ImageList-Steuerelementen (Bibliothek mscomctl32.ocx) gespeichert.
  • Datenherkunft für das Erstellen des
    Text-Newsletters

    Die Routine, die den Text für den Newsletter zusammenstellt, bezieht ihre Informationen aus den Formularfeldern und aus einer Abfrage, die alle Artikel inklusive Rubriken-Informationen enthält, die zu dem aktuell im Formular angezeigten Newsletter gehören.

    Die Abfrage berücksichtigt, dass ein Artikel gegebenenfalls keine Rubrik enthält; dementsprechend ist die Beziehung zwischen den Tabellen tblArtikel und tblRubriken so definiert, dass das Abfrageergebnis alle Datensätze ausgibt, die in der Tabelle tblArtikel enthalten sind - egal, ob dazu ein passender Datensatz in der Tabelle tblRubriken vorhanden ist (s. Abb. 15).

    Abb. 15: Die Routine zum Erstellen des textbasierten Newsletters verwendet diese Abfrage als Grundlage.

    Die Routine aus Quellcode 1 wird durch die Schaltfläche cmdNewsletterAusgeben ausgelöst. Die Routine deklariert zunächst die notwendigen Variablen und eine Konstante (LINIE), die eine Folge von Minuszeichen als Trennlinien enthält. Sollten Sie eine andere Trennlinie bevorzugen, ist hier der Ort, an dem Sie einschreiten müssen.

    Die String-Variable str speichert jeweils das Zwischenergebnis des auszugebenden Textes. Dieser wird durch Anhängen der grundlegenden Newsletter-Informationen und der einzelnen Artikel kontinuierlich erweitert. Da diese Routine sich im Klassenmodul des Formulars frmNewsletter befindet, kann sie zur Laufzeit auf den Inhalt der Steuerelemente des Formulars zugreifen.

    Dies würde theoretisch auch mit den Datensätzen des Unterformulars frmArtikel funktionieren, aber eine separate Abfrage, die per Recordset-Objekt referenziert wird, ist performanter. Im Anschluss an die Instanzierung des Recordset-Objekts beginnt das Zusammenstellen des Newsletter-Inhalts - mit dem Hinzufügen des Inhalts der Konstanten LINIE.

    Direkt danach folgen die im Formular angezeigte Bezeichnung und eine weitere Linie - jeweils mit der passenden Anzahl Zeilenumbrüche (vertreten durch die Konstante vbCrLf) versehen. Kurztext, Erscheinungsdatum und Abonnentenzahl schließen sich an.

    Nachdem das erste Pulver in Form der im Formular verfügbaren Informationen verschossen und in den Newsletter geschrieben wurde, folgen nun die Artikel. Diese liest die Routine aus dem Recordset mit den Artikeldaten ein und erweitert den Inhalt der Variablen str damit.

    Zunächst überprüft die Routine, ob für den aktuellen Artikel die Option UeberschriftStattRubrik aktiviert ist. Sie erinnern sich: Damit lässt sich die Rubrik durch die Überschrift des jeweiligen Artikels ersetzen. Ist diese Option aktiviert, fügt die Routine die in "Linien"-Zeilen eingerahmte Überschrift als Rubrik ein. Die Überschrift erfährt dabei eine besondere Bearbeitung: Die Funktion UmbrechenLine nimmt sich ihrer an und sorgt dafür, dass der enthaltene Text maximal 72 Zeichen lang ist. Diese Zahl ist in einer Konstanten namens ZEICHEN_PRO_ZEILE festgelegt, die sich im Modul mdlTools des VBA-Projekts befindet. Sie können diese Zahl anpassen, allerdings sind Mails mit einer Zeilenlänge von etwa 72 Zeichen sehr gut lesbar.

    Außerdem stellen Sie so sicher, dass auch Leser mit einer schlechten oder schlecht eingestellten E-Mail-Software keine bandwurmartigen Zeilen vorgesetzt bekommen.

    Quellcode 1: Ausgabe der Textversion des Newsletters

    Private Sub cmdNewsletterAusgeben_Click()

        Dim str As String

        Dim db As DAO.Database

        Dim rst As DAO.Recordset

        Dim strAusgabeteil(100) As String

        Dim intAnzahlAbsaetze As Integer

        Dim i As Integer

        Const LINIE As String = "---------------------------------------------------------------"

        Set db = CurrentDb

        Set rst = db.OpenRecordset("SELECT * FROM qryNewsletterArtikel WHERE NewsletterID = " _
            & Me!NewsletterID & " ORDER BY ReihenfolgeID", dbOpenDynaset)

        str = str & LINIE & vbCrLf

        str = str & "  " & Me!Bezeichnung & vbCrLf

        str = str & LINIE & vbCrLf & vbCrLf

        str = str & UmbrechenLine(" ", "", Me!Kurztext, ZEICHEN_PRO_ZEILE) & vbCrLf & vbCrLf

        str = str & "  Erscheinungsdatum: " & Me!Datum & vbCrLf & vbCrLf

        str = str & "  Abonnentenzahl: " & Me!Abonnenten & vbCrLf & vbCrLf

        Do While Not rst.EOF

            If rst!UeberschriftStattRubrik = True Then

                str = str & vbCrLf & LINIE & vbCrLf

                str = str & UmbrechenLine(" ", "", rst!Ueberschrift, ZEICHEN_PRO_ZEILE) & vbCrLf

                str = str & LINIE & vbCrLf & vbCrLf

            Else

                If strRubrik = rst!Rubrik Then

                    str = str & vbCrLf

                Else

                    str = str & vbCrLf & LINIE & vbCrLf

                    str = str & UmbrechenLine(" ", "", rst!Rubrik, ZEICHEN_PRO_ZEILE) & vbCrLf

                    str = str & LINIE & vbCrLf & vbCrLf

                End If

                strRubrik = rst!Rubrik

                If rst!UeberschriftAnzeigen = True Then

                    str = str & UmbrechenLine("  +++", "", rst!Ueberschrift, ZEICHEN_PRO_ZEILE) _
                        & vbCrLf

                    str = str & vbCrLf

                End If

            End If

            If Len(rst!Inhalt) > 0 Then

                intAnzahlAbsaetze = InhaltInAbsaetzeAufteilen(rst!Inhalt, strAusgabeteil())

                For i = 1 To intAnzahlAbsaetze

                    str = str & UmbrechenLine(" ", "", strAusgabeteil(i), ZEICHEN_PRO_ZEILE) & vbCrLf

                Next i

            End If

            str = str & vbCrLf

            If Len(rst!Linktext) > 0 Then

                str = str & UmbrechenLine(" ", "", rst!Linktext, ZEICHEN_PRO_ZEILE) & vbCrLf

                str = str & vbCrLf

            End If

            If Len(rst!Link) > 0 Then

                str = str & "  " & rst!Link & vbCrLf & vbCrLf

            End If

            rst.MoveNext

        Loop

        DoCmd.OpenForm "frmAusgabe"

        Forms!frmAusgabe!txtAusgabe = str

    End Sub

    Zurück zum Ablauf: Sollte die Überschrift dieses Artikels nicht als Rubrikbezeichnung herhalten, stellt sich eine weitere Frage: Gab es unmittelbar zuvor schon einen weiteren Artikel, der zur gleichen Kategorie gehört? Dies prüft die Zeile If strRubrik = rst!Rubrik Then... ab. Die Variable strRubrik wird weiter unten mit dem Namen der aktuellen Rubrik belegt, damit der folgende Artikel wiederum auf die Vorgängerrubrik hin geprüft werden kann.

    Warum das Ganze? Ganz einfach: Mehrere Artikel der gleichen Rubrik sollen nur einmal mit der Rubrik-Überschrift versehen werden. Gehörte der vorhergehende Datensatz bereits der gleichen Rubrik an, wird der passende Kopf für den aktuellen Datensatz nicht mehr gedruckt.

    Anderenfalls hängt die Routine nun die obligatorischen "Linien"-Zeilen und die darin eingeschlossene Rubrikenüberschrift an die Variable str an. Ein ähnliches Spielchen bewirkt die Ausgabe der Überschrift des Artikels: Diese wird nur ausgegeben, wenn die Option UeberschriftAnzeigen den Wert True hat.

    Ausgabe der Artikel

    Interessant wird es bei den einzelnen Artikeln: Diese können ja durchaus aus mehreren Absätzen mit Leerzeilen und dergleichen bestehen. Auch diese sollen der Kürzung auf 72 Zeichen je Zeile unterworfen werden. Das ist allerdings nicht ganz unproblematisch, denn die dazu vorgesehene Funktion UmbrechenLine verträgt sich nicht allzu gut mit Passagen, die Zeilenumbrüche enthalten. Also folgt zuvor eine weitere Spezialbehandlung: Die Funktion InhaltInAbsaetzteAufteilen nimmt sich den Artikel vor, teilt ihn in seine Absätze auf und speichert diese in den einzelnen Elementen eines Arrays.

    Dessen Elemente wiederum lassen sich in einer Schleife leicht auf 72 Zeichen pro Zeile "eindampfen". Das folgende Einfügen der Linkbeschriftung und des Links ist vergleichsweise trivial. Wichtig hier: Der Link sollte nicht auf 72 Zeichen pro Zeile umbrochen werden, da er dann im E-Mail-Client nicht mehr per Mausklick angesteuert werden kann.

    Die Routine öffnet nun noch das Formular frmAusgabe, weist dem dortigen Textfeld txtAusgabe den Inhalt der Variablen str zu und verabschiedet sich. Der Benutzer kann indes den Inhalt des Newsletters herauskopieren oder in einer Datei abspeichern.

    Zusammenfassung und Ausblick

    Die vorgestellte Lösung ist auf die Ausgabe von Newslettern mit halbwegs flexiblen Inhalten in einem relativ starr vorgegebenen Layout (sowohl im Text- als auch im HTML-Modus) ausgelegt.

    Die Funktionen des Tools sind daher beliebig erweiterbar: Sie könnten etwa Funktionen hinzufügen, mit denen Sie das Aussehen der Ausgabe über die Benutzeroberfläche statt über den Code noch stärker manipulieren können, als dies bisher der Fall ist.

    Auch wäre eine direkte Anbindung an ein Tool zum Versenden der erzeugten Newsletter denkbar. Mit dem in der nächsten Ausgabe vorgestellten Tool (Serien-E-Mails mit Komfort, Shortlink 380) wäre dies beispielsweise gut möglich. Auf diese Weise hätten Sie beide Funktionen - Erstellen des Newsletters und Versenden per SMTP und ohne Outlook & Co. - in einer Datenbank vereint.

    Wenn Sie die Verwaltung der passenden E-Mail-Adressen noch hinzufügen, haben Sie praktisch ein perfektes Newsletter-Tool (vergessen Sie nicht, einen Verteiler zu implementieren: Wer hat wann welchen Newsletter bekommen). Auch wenn Sie den Newsletter über Outlook an die dort gespeicherten Adressaten versenden, haben Sie mit dem Newsletter-Creator ein interessantes Tool an der Hand, mit dem Sie eine Menge Arbeit sparen können.

    HTML-Ausgabe anpassen

    Da nicht davon auszugehen ist, dass Ihnen das vorhandene Design der HTML-Newsletter-Ausgabe gefällt, noch ein Hinweis: Wenn Sie das Layout ändern möchten, müssen Sie die Ereignisprozedur cmdNewsletterHTML_Click anpassen. Diese Prozedur ist für das Zusammenstellen des HTML-Dokuments verantwortlich.

    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:

    Download

    Download

    Die .zip-Datei enthält folgende Dateien:

    accessNewsletter00.mdb

    Beispieldateien downloaden

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.