Outlook-Tipps für IT-Manager




Das in Abbildung A gezeigte Formular verwendet eine Listenbox-Steuerung zur Anzeige aller Reports in der Nordwind-Musterdatenbank, die in Access integriert ist. Zum Versand eines Reports per E-Mail, braucht man nur einen auszuwählen und auf die Schaltfläche „Mail Report“ zu klicken.

Dieses Musterformular versendet ein Access-Objekt mit Hilfe des im System als Standard definierten E-Mail-Clients. (Foto: ZDNet)
Abbildung A: Dieses Musterformular versendet ein Access-Objekt mit Hilfe des im System als Standard definierten E-Mail-Clients. (Foto: ZDNet)

Zur Erstellung des Formulars öffnet man ein leeres Formular und ergänzt es um eine Listenbox und eine Befehlsschaltfläche. Tabelle C führt die Eigenschaften für das Formular und beide Steuerungen an. Speichern Sie das Formular unter dem Namen frmSendMail. Nachdem die beiden Steuerungen hinzugefügt wurden, klicken Sie auf die Schaltfläche Code in der Werkzeugleiste Form Design, um das Modul des Formulars zu öffnen und die beiden in Listing A und Listing B gezeigten Ereignisprozeduren einzugeben. Das Ereignis ‚load‘ des Formulars sorgt für die Einträge in der Listenbox, während die Befehlsschaltfläche die Methode SendObject aufruft.

Tabelle C: Forumular-Eigenschaften

Steuerelement Eigenschaft Einstellung
Formular Bildlaufleisten Neither
&nbsp Record-Selektor No
&nbsp Navigationsschaltflächen No
&nbsp Trennlinien No
Listenbox Name lstObject
Befehlsschaltfläche Name cmdSendMail
&nbsp Caption Mail Report

Die Verwendung des Formulars

Nun sind wir soweit, dass wir tatsächlich Mails versenden können. Dafür wählen wir aus der Liste einen Report aus, beispielsweise Catalog, und klicken auf die Schaltfläche Mail Report. Daraufhin öffnet sich das in Abbildung B dargestellte Fenster „Neue Nachricht“. Man beachte, dass der Report als Dateianhang aufgeführt ist. Das Fenster kann auch anders aussehen. Man sollte dabei bedenken, dass Access den im System als Standard definierten E-Mail-Client benutzt.

Abbildung B: Die Methode SendObject öffnet eine neue Nachricht im E-Mail-Programm. (Foto: ZDNet)
Abbildung B: Die Methode SendObject öffnet eine neue Nachricht im E-Mail-Programm. (Foto: ZDNet)

Es fällt auf, dass viele Felder noch leer sind. Vor dem Versand der Mail müssen die Anwender noch eine Menge Informationen eingeben: den/die Empfänger, einen eventuellen Betreff, sowie den Text der Nachricht. Soll den Anwendern diese Information oder ein Teil davon bereits vorgegeben werden, lassen sich die entsprechenden Werte in der SendObject-Methode festlegen.

Geben Sie zum Testen des Formulars Ihre eigene E-Mail-Adresse ein und versenden Sie es. Sollten Sie im Moment gerade nicht online sein, ist dies auch kein Problem. Ihr E-Mail-Client speichert die Nachricht und ihre Dateianhänge, bis Sie sich das nächste Mal wieder mit dem Netz verbinden.

Erweiterungen

In den Beispielen wurden absichtlich so wenig Informationen wie möglich spezifiziert, damit man sich auf die Methode SendObjects konzentrieren kann und nicht auf ein schickes Formular, das dem Anwender die ganze Arbeit abnimmt. Man sollte leicht in der Lage sein, weitere Informationen von seinen Anwendern einzuholen und diese an die SendObject-Methode weiterzugeben, wodurch die Informationsmenge und der Zugriff des Anwenders auf die E-Mail-Nachricht selbst verringert werden. Alternativ kann man die Information auch selbst als direkten Wert in das SendObject-Statement eingeben.

Zudem beinhaltet das Beispiel keine Fehlerverarbeitung. Die Aufzeichnung von Fehlern ist jedoch sicherlich wünschenswert. Hier nur einige wenige, auf die man vorbereitet sein sollte:

  • Der Fehler, wenn das benannte Objekt nicht existiert.

  • Der Fehler, wenn der Objekttyp für das benannte Objekt nicht korrekt ist.

  • Der Fehler, wenn der SendObject-Auftrag unerwartet abgebrochen wird.

  • Der Fehler, wenn die Datenquelle des Objekts nicht vorhanden ist.

  • Der Fehler, wenn der Anwender ein Objekt angibt, das nicht per E-Mail versendet werden kann (Makro).

Man sollte versuchen, zu vermeiden, dass die Anwender E-Mail-Adressen manuell eingeben. Dies ist sehr fehleranfällig, denn jeder Eintrag muss einem exakten Format entsprechen und selbstverständlich muss es sich um eine gültige E-Mail-Adresse handeln. Dafür muss man Code integrieren, der diese Adressen überprüft. Anderenfalls muss man dafür sorgen, dass die Anwender die Empfänger nur aus dem Adressbuch des E-Mail-Programms auswählen können.

Snapshot-Dateien per E-Mail versenden

Wenn man damit vertraut ist, Access-Reports per E-Mail zu versenden, kennt man vielleicht auch schon den in Access 2000 und die neueren Versionen integrierten Snapshot Viewer. (Nutzer von Access 97 müssen das Programm separat downloaden und installieren.) Dieses Programm speichert Access-Reports als Snapshot-Datei (.snp), die praktisch ganz genauso aussieht wie der Original-Report.

Ist der Snapshot Viewer installiert, kann man die Konstante des Snapshot-Formats (acFormatSNP) im Argument outputformat von SendObject angeben. Das vorherige Beispiel würde also das folgende Statement verwenden:
DoCmd.SendObject acSendReport, strReport, _ acFormatSNP, , , , , , True

Man muss nur bedenken, dass der Report, auf den man sich im Argument objectname bezieht, eine gültige Snapshot-Datei (mit der Dateierweiterung .snp) sein muss. Liegt der Report im Access-Format, nicht aber im Snapshot-Format vor, kann man sich ein paar Schritte ersparen, indem man den Access-Report exportiert. Dazu verwendet man das Format SnapshotFormat (*.snp) in dieser Form:
DoCmd.SendObject acSendReport, strReport, _ „SnapshotFormat(*.snp)“, , , , , , True

Zum Betrachten einer Datei im Format .snp muss der Empfänger nicht über Access, wohl aber über den Snapshot Viewer verfügen. Dieser kann in Artikel 175274 der Microsoft Knowledge Base heruntergeladen werden.

Themenseiten: Business-Software, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

1 Kommentar zu Outlook-Tipps für IT-Manager

Kommentar hinzufügen
  • Am 30. November 2003 um 11:51 von Heinrich Sinnreich

    Beispiel für automatisches Versenden
    Schönes Beispiel, was mir persönlich jedoch fehlt ist eine Information, ob es möglich ist ein Formular als Snapshot abzuspeichern, und wenn ja, wie? Bei meinen Versuchen erhalte ich diesbezüglich leider immer eine Fehlermeldung (DoCmd.OutputTo acOutputForm, "Kalender", acFormatSNP). Vielleicht könnt Ihr mir weiterhelfen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *