Outlook-E-Mails mit Richtext füttern

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Outlook-E-Mails mit Richtext füttern

Die noch nicht allzu alten Richtext-Features von Access (ab Version 2007) bieten eine tolle Möglichkeit, Texte zu formatieren und diese auch in dieser Form etwa in Berichten auszugeben. Noch interessanter wird es, wenn man E-Mails ebenfalls mit Formatierungen ausstattet und beides zusammenführen möchte – sprich: Die Texte von E-Mails mit den Richtext-Möglichkeiten von Access formatieren und dann als Inhalt einer neuen E-Mail unter Outlook einfügen. Dieser Beitrag liefert die Grundlagen zu diesem Thema.

In einem einfachen Beispiel wollen wir zunächst die drei Informationen Empfänger, Betreff und Inhalt für eine E-Mail in einem Formular erfassen.

Das Formular heißt frmRichtextInMailExportieren und sieht wie in Bild 1 aus.

Formular zur Eingabe der E-Mail-Inhalte

Bild 1: Formular zur Eingabe der E-Mail-Inhalte

Es enthält die drei Textfelder txtAn, txtBetreff und txtInhalt. Der Einfachheit halber haben wir es nicht an eine Tabelle gebunden, sondern füllen es bei Bedarf per Schaltfläche mit ein paar Beispieldaten.

Diese Schaltfläche heißt cmdBeispieltext und ruft die Prozedur aus Listing 1 auf. Die Tabelle tblRichtext, aus der die Prozedur per DLookup-Funktion den Richtext bezieht, stammt aus einem Beispiel zu einem vorherigen Beitrag zu diesem Thema namens Richtext ab Access 2007 (www.access-im-unternehmen.de/927).

Private Sub cmdBeispieltext_Click()
     Me!txtAn = "test@mustermann.de"
     Me!txtBetreff = "Dies ist eine Textmail mit Richtext-Inhalt."
     Me!txtInhalt = DLookup("Richtext", "tblRichtext", "RichtextID = 3")
End Sub

Listing 1: Füllen der Textfelder des Formulars frmRichtextInMailExportieren mit Beispieldaten

Outlook-Verweis erstellen

Da abzusehen ist, dass wir gleich per VBA auf Outlook zugreifen und dort per Code eine Mail erstellen und füllen werden, bereiten wir schon einmal den für den einfachen Zugriff nötigen Verweis auf die Bibliothek Microsoft Outlook x.0 Object Library vor (für x bitte die Version Ihrer Outlook-Bibliothek einsetzen). Den Verweis fügen Sie im VBA-Editor über den Verweise-Dialog hinzu, den Sie mit dem Menübefehl Extras|Verweise aufrufen – s. Bild 2.

Verweis auf die Outlook-Objektbibliothek

Bild 2: Verweis auf die Outlook-Objektbibliothek

Mail manuell füllen

Zuvor schauen wir uns allerdings noch an, was geschieht, wenn wir den Inhalt des Textfeldes txtInhalt manuell kopieren und in eine neu erstellte E-Mail einfügen. Wir arbeiten in diesem Fall übrigens mit Access 2010 und Outlook 2010. Das Resultat enttäuscht: Es wurden überhaupt keine Formatierungen übernommen! Wenn die eingefügte E-Mail bei Ihnen wie bei uns in Bild 3 aussieht, dann haben Sie den gleichen Fehler gemacht wie wir: Das E-Mail-Format ist noch auf Nur-Text eingestellt. Aber das ist kein Problem: Wir ändern den entsprechenden Eintrag in den Optionen von Outlook einfach mit der Einstellung aus Bild 4. Die Frage ist nur: Welche der beiden Einstellungen HTML oder Rich-Text ist für unseren Fall die richtige? Uns bleibt nichts anderes übrig, als beide Versionen auszuprobieren. Beginnen wir mit der Einstellung HTML. Nach dem Anlegen einer neuen E-Mail unter dieser Einstellung sieht es schon besser aus. Immerhin werden die meisten Formatierungen übernommen (s. Bild 5).

Erster Versuch: Einfügen per Copy & Paste – gescheitert, da die Mail im Textformat erstellt wurde

Bild 3: Erster Versuch: Einfügen per Copy & Paste – gescheitert, da die Mail im Textformat erstellt wurde

Einstellung des E-Mail-Formats in den Optionen von Outlook 2010

Bild 4: Einstellung des E-Mail-Formats in den Optionen von Outlook 2010

E-Mail mit der Einstellung HTML

Bild 5: E-Mail mit der Einstellung HTML

Einziger Wermutstropfen: Outlook übernimmt nicht die im Access-Formular verwendete Schriftart Calibri, sondern zeigt den Inhalt mit Times New Roman an. Das ist aber auch kein Wunder, denn wenn wir uns den HTML-Code für den Richtext mit einer weiteren Schaltfläche des Formulars in einem Meldungsfenster ausgeben lassen, stellen wir fest, dass dort auch nirgends eine Schriftart für die Ausgabe festgelegt wurde. Access verwendet im Textfeld schlicht die Schriftart, die als Eigenschaft für dieses Steuerelement festgelegt wurde (s. Bild 6).

HTML-Text des Textfeld-Inhalts

Bild 6: HTML-Text des Textfeld-Inhalts

Interessanterweise ist in der jungfräulichen E-Mail auch die Schriftart Calibri voreingestellt. Aus irgendeinem Grund wird der Text dort aber nach dem Einfügen mit der Schriftart Times New Roman versehen.

Bevor wir Ursachenforschung betreiben, schauen wir uns erst noch an, was das Format Rich-Text für E-Mails in unserem Fall bietet. Doch das Ergebnis bleibt das gleiche: Die Formatierungen bleiben weitgehend erhalten, doch als Schriftart wird nicht, wie erwünscht und erwartet, Calibri verwendet.

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Ich habe die Datenschutzbestimmungen zur Kenntnis genommen.