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.

Bild 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 (siehe Bild 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.

    Bild 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 (siehe Bild 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 (siehe Bild 3).

    Bild 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.

    Bild 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 (siehe Bild 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 (siehe Bild 5).

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

    Bild 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

    Bild 6: Das Dialogfenster Beziehungen der Beispieldatenbank

    Bild 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 (siehe Bild 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 (siehe Bild 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

    Bild 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.

    Bild 9: Entwurfsansicht der Tabelle tblAdrMail

    Bild 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 (siehe Bild 10) und die Indexeigenschaften betrachten.

    Bild 11: Das Dialogfenster Tabelle anzeigen

    Bild 12: Das Dialogfenster Beziehungen bearbeiten

    Bild 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 (siehe Bild 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 (siehe Bild 12).

    Vergewissern Sie sich, ob im Dialogfenster Verknüpfungseigenschaften (siehe Bild 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.

    Das Unterformular subMailingHistorie befindet sich im Formular frmFMailings. Es zeigt die ver- sendete Mail der im Hauptformular ausgewählten Adresse an.

    Das Formular frmFEmpfänger dient lediglich zur Auswahl der Empfänger einer Mailing-Aktion. Es können ein oder auch mehrere Empfänger ausgewählt werden.

    Bild 14: Entwurfsansicht der Auswahlabfrage

    Bild 15: Das Eigenschaftsfenster des Kombinationsfeldes

    Das Formular frmFMailings dient zum Eingeben bzw. Bearbeiten von E-Mail-Nachrichten und zum Start der übergabe an Outlook.

    Das Formular frmFAdressen

    Das Formular frmFAdressen ist ein ganz normales Formular des Typs Einzelnes Formular mit Befehlsschaltflächen im Formularfuß ohne weitere Besonderheiten.

    Datenherkunft

    Als Datenherkunft des Formulars dient die Auswahlabfrage qryFfrmAdressen, mit der die Felder der Tabelle tblAdressen nach Nachnamen sortiert zusammengefasst werden (siehe Bild 14) können.

    Das Kombinationsfeld zur Auswahl der Anrede

    Diese Auswahlmöglichkeit soll relativ simpel mittels Kombinationsfeld und Werteliste gelöst werden.

  • öffnen Sie das Formular in der Entwurfsansicht.
  • Ziehen Sie das Steuerelement txtAnrede aus der Feldliste auf das Formular und öffnen Sie das Eigenschaftsfenster des Steuerelements (siehe Bild 15).
  • Wählen Sie für die Eigenschaft Herkunftstyp die Einstellung Werteliste aus.
  • Geben Sie für die Eigenschaft Datensatzherkunft die gewünschten Begriffe ein. Achten Sie darauf, die einzelnen Einträge jeweils durch ein Semikolon (;) voneinander zu trennen.
  • Stellen Sie Spaltenanzahl und Gebundene Spalte jeweils auf den Wert 1 ein.
  • Das UnterformularsubMailingHistorie

    Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    den kompletten Artikel im PDF-Format mit Beispieldatenbank

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar