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