Serien-E-Mails mit Access und Outlook

Autor: Klaus Giesen, Wuppertal

Die mittlerweile fast schon selbstverständliche Internetanbindung von Arbeitsplätzen wirkt sich unter anderem auch auf die Ansprüche aus, die an die Funktionalität von Datenbankanwendungen gestellt werden. Eine in diesem Zusammenhang weit verbreitete – und auch nahe liegende – Anforderung ist der komfortable Versand von E-Mails. Dazu bietet sich beispielsweise eine Adressen-Datenbank an. Im vorliegenden Beitrag erfahren Sie, wie Sie Ihre Adressdatenbank um eine Funktion zum Versenden von E-Mails an einen oder mehrere Empfänger erweitern können. Dabei können Sie alle gewünschten Aktionen direkt aus Ihrer Datenbank heraus initiieren, ohne Outlook starten zu müssen. Natürlich können Sie zu jedem Eintrag Ihres Adressbuches auch alle bisher versendeten Mails anzeigen lassen.

Das Versenden von E-Mails mit Access ist auf unterschiedliche Arten möglich. Die folgenden beiden Abschnitte beschreiben die beiden wesentlichen Möglichkeiten.

Die SendenObjekt-Aktion

Mit Hilfe der SendenObjekt-Aktion kann eine E-Mail direkt in Access erstellt und versendet werden.

Abb. 1: Das Dialogfenster zur Auswahl des Formats

Außerdem können Sie ein Datenblatt, ein Formular, einen Bericht oder ein Modul an eine E-Mail anhängen. Hierzu gehen Sie wie folgt vor:

  • Markieren Sie das gewünschte Objekt im Datenbankfenster.
  • Wählen Sie aus dem Menü Datei den Befehl Senden/An Mailempfänger oder Senden/An Mailempfänger (Als Anlage)… aus.
  • Markieren Sie im daraufhin erscheinenden Dialogfenster Senden das gewünschte Dateiformat (s. Abb. 1).
  • Bestätigen Sie Ihre Auswahl mit einem Klick auf die Schaltfläche OK.
  • Hinweis

    Damit die Art des E-Mail-Versands auch funktioniert, muss auf Ihrem Rechner ein MAPI-kompatibler E-Mail-Client – wie beispielsweise Microsoft Outlook – installiert sein.

    Abb. 2: Verweis auf die Microsoft Outlook 9.0 Object Library

    Die SendenObjekt-Aktion kann übrigens auch in einem Makro oder einer VBA-Prozedur aufgerufen werden.

    Automation

    Die vorgestellte Lösung eignet sich sehr gut dazu, einzelne Objekte per E-Mail zu versenden. Ein Versand von Serien-E-Mails lässt sich damit jedoch nicht realisieren.

    Um eine solche Funktionalität zu erreichen, muss man sich der „Automation“ bedienen. Hiermit greifen Sie direkt auf Objekte und Methoden der Client-Anwendung – hier Outlook – zu. Dazu ist es zunächst einmal notwendig, in der Datenbank einen Verweis auf die Outlook-Objektbibliothek zu erstellen.

  • öffnen Sie in der Access-Datenbank ein Modul in der Entwurfsansicht oder erstellen Sie ein neues Modul, falls keines vorhanden ist.
  • Wählen Sie aus dem Menü Extras den Befehl Verweise aus.
  • Markieren Sie im Dialogfenster Verweise das Kontrollkästchen neben dem Eintrag Microsoft Outlook 9.0 Object Library (s. Abb. 2).
  • Schließen Sie das Dialogfenster Verweise mit einem Klick auf die Schaltfläche OK.
  • Damit haben sie die notwendige Voraussetzung für das weitere Vorgehen geschaffen.

    Die folgenden Abschnitte enthalten eine Zusammenstellung der Minimalanforderungen an eine Datenbankanwendung zum automatischen E-Mail-Versand.

    Filterung bzw. Auswahl der Empfänger

    Zur Lösung dieser Aufgabe gibt es verschiedene Möglichkeiten. Eine davon ist, die gewünschten Empfänger im Listenfeld eines speziellen Auswahlformulars zu markieren (s. Abb. 3).

    Abb. 3: Formular zur Auswahl der Empfänger

    Automatische übernahme der Anrede

    Zur jeder Adresse gehört in diesem Fall auch eine entsprechende Anrede. Diese soll automatisch aus der zugrunde liegenden Tabelle übernommen werden.

    Abb. 4: Das Formular frmFAdressen mit Mailinghistorie

    Personalisierung der Anrede

    Zu einer Anrede wird automatisch der dazugehörige Nachname hinzugefügt.

    Anzeige einer Mailing-Historie

    Sinnvoll ist ein überblick über versandte Mailings. Deswegen wird zu jedem Datensatz in der Adressdatenbank eine Mailing-Historie angezeigt, aus der Betreff, Text und vor allem auch der genaue Zeitpunkt des Versands zu erkennen sind (s. Abb. 4).

    Versandstatus

    Nach der Fertigstellung einer E-Mail in Outlook kann diese entweder direkt versendet oder zunächst einmal angezeigt werden. Diese Auswahlmöglichkeit sollte auch bei einer Datenbankanwendung enthalten sein (s. Abb. 5).

    Die Beispieldatenbank auf der CD liegt in den Versionen für Access 97 und Access 2000 vor.

    Abb. 5: Auswahl des Versandstatus

    Falls Sie die Arbeitsschritte von Grund auf nachvollziehen wollen, muss unter Access 2000 ein Verweis auf die Microsoft DAO 3.6 Library erstellt werden.

    Das Datenmodell derBeispieldatenbank

    Das Datenmodell ist im Prinzip relativ einfach. Es gilt lediglich eine Besonderheit zu beachten.

    Verknüpfungen

    Abb. 6: Das Dialogfenster Beziehungen der Beispieldatenbank

    Abb. 7: Die Tabelle tblAdressen in der Entwurfsansicht

    Wenn man sich die praktische Arbeit mit einer solchen Anwendung vor Augen hält, sind die folgenden Situationen denkbar:

  • Ein Empfänger kann verschiedene Mailings erhalten.
  • Ein Mailing kann an verschiedene Empfänger gerichtet sein.
  • Die datenbanktechnische Umsetzung einer solchen Situation erfolgt am elegantesten mit Hilfe einer so genannten n:m-Beziehung.

    Da eine n:m-Beziehung nichts anderes als zwei 1:n-Beziehungen darstellt, kann sie nur über eine Verknüpfungstabelle realisiert werden.

    Genaue Einzelheiten zum Aufbau der Verknüpfungstabelle und zu den Beziehungen finden Sie im folgenden Abschnitt.

    Die Tabellen

    Die Beispieldatenbank enthält drei Tabellen (s. Abb. 6).

    Die Tabelle tblAdressen

    Die Tabelle tblAdressen (s. Abb. 7) ist zur Speicherung der personenbezogenen Daten be-stimmt und kann leicht an Ihre persönlichen Erfordernisse an-gepasst werden.

    Das Primärschlüsselfeld AdressenID besitzt den Felddatentyp AutoWert.

    In der Abfrage, die dem Formular frmFAdressen zugrunde liegt, wird nach dem Feld txtNachname sortiert.

    Also ist es sinnvoll, dieses Feld zu indizieren, da eine Indizierung neben dem Suchen auch die Sortierung beschleunigt.

  • Wählen Sie das Feld txtNachname in der Entwurfsansicht der Tabelle aus.
  • Klicken Sie im Register Allgemein in das Listenfeld Indiziert und wählen Sie den Eintrag Ja (Duplikate möglich) aus (s. Abb. 8).
  • Die Tabelle tblMailings

    Die Tabelle tblMailings dient zum Speichern der Mailings. Den Aufbau können Sie der Tab. 1 entnehmen.

    Feldname

    Felddatentyp

    MailingID

    AutoWert

    txtBetreff

    Text

    memMailing

    Memo

    datSendMail

    Datum/Zeit

    Tab. 1: Die Tabelle tblMailings

    Abb. 8: Indiziertes Feld

    In das Feld datSendMail werden beim Versand einer E-Mail per VBA das Datum und die Uhrzeit eingetragen. So kann dieser Zeitpunkt auf die Sekunde genau in der Mailing-Historie festgehalten werden.

    Abb. 9: Entwurfsansicht der Tabelle tblAdrMail

    Abb. 10: Das Dialogfenster Indizes

    Die Tabelle tblAdrMail

    Diese Tabelle ist – wie schon erwähnt – zur Realisierung der n:m-Beziehung notwendig.

  • Erstellen Sie eine neue Tabelle in der Entwurfsansicht und stellen Sie für beide Felder im Register Allgemein des Entwurfsfensters die Eigenschaften gemäß der Abb. 9 ein.
  • Markieren Sie die beiden Felder AdressenID und MailingID im Entwurfsfenster und klicken Sie in der Symbolleiste auf das Symbol Primärschlüssel.
  • Speichern Sie die Tabelle unter dem Namen tblAdrMail.
  • Damit ist ein gemeinsamer Primärschlüssel für die Felder AdressenID und MailingID festgelegt worden.

    Das hat zur Folge, dass eine Beziehung zwischen einem Empfänger und einer E-Mail nur einmal vorkommen kann.

    Andererseits können Adressen und Mailings mehrfach vorkommen. Das Ganze wird deutlicher, wenn Sie das Dialogfenster Indizes öffnen (s. Abb. 10) und die Indexeigenschaften betrachten.

    Abb. 11: Das Dialogfenster Tabelle anzeigen

    Abb. 12: Das Dialogfenster Beziehungen bearbeiten

    Abb. 13: Das Dialogfenster Verknüpfungseigenschaften

    Festlegen der Beziehungen zwischen den Tabellen

    Der abschließende Schritt zur Erstellung des Datenmodells ist das Festlegen der Beziehungen zwischen den beiden Haupttabellen und der Verknüpfungstabelle.

  • öffnen Sie mit dem Menübefehl Extras ( Beziehungen das Dialogfenster Beziehungen und wählen Sie im Dialogfenster Tabelle anzeigen alle drei Tabellen der Datenbank aus (s. Abb. 11).
  • Klicken Sie auf das Feld AdressenID in der Tabelle tblAdressen und ziehen Sie es auf das Feld AdressenID in der Tabelle tblAdrMail. Damit ist eine 1:n-Beziehung zwischen diesen beiden Tabellen erstellt.
  • Markieren Sie im Dialogfenster Beziehungen bearbeiten das Kontrollkästchen Mit referentieller Integrität und klicken Sie anschließend auf die Schaltfläche Verknüpfungstyp (s. Abb. 12).

    Vergewissern Sie sich, ob im Dialogfenster Verknüpfungseigenschaften (s. Abb. 13) die Verknüpfungsoption 1 aktiviert ist und klicken Sie auf die Schaltfläche OK.

  • Klicken Sie abschließend im Dialogfenster Beziehungen bearbeiten auf die Schaltfläche Erstellen.
  • Erstellen Sie auf die gleiche Art eine Beziehung zwischen den Tabellen tblAdrMail und tblMailings. Das Resultat sollte nun wie in der Abb. 6 aussehen.
  • In der Beispieldatenbank sind insgesamt vier Formulare vorhanden, von denen eines ein Unterformular ist.

    Das Formular frmFAdressen dient zunächst zur Eingabe und Bearbeitung von Adressen. Gleichzeitig dient es als Startpunkt der Funktionalität für den E-Mail-Versand.

    Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
    Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
    Zur Bestellung ...
    Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
    Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar