Access -> Outlook

30/04/2009 - 08:46 von Michael Marschall | Report spam
Hallo,
gibt es eine Möglichkeit Outlook (E-Mail versand) aus Access zu
starten ? Und diesem dann auch noch einige Dinge vorzugeben (Betreff
usw.)

Danke im voraus
 

Lesen sie die antworten

#1 Werner Günther
30/04/2009 - 09:20 | Warnen spam
Hallo Michael.
Schau mal hier.
SmartTools Publishing []
vom: SmartTools Access Weekly vom 2.4.2009
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
QuickTipp: Bericht und weitere Dateien als Anhang versenden
Versionen: Access 2007, 2003, 2002/XP und 2000

Mit Access soll ein Bericht per E-Mail verschickt werden, was beispielsweise
mit dem folgenden Befehl gelingt:

DoCmd.SendObject acReport, stDocName, acFormatRTF, , , ,
stSubject, stMessageText

Problematisch wird es, wenn an die E-Mail zusàtzlich noch eine Datei
angehàngt werden soll. Mit "DoCmd.SendObject" làsst sich das leider nicht
lösen. Sie können aber Outlook per Office Automation fernsteuern, eine Mail
anlegen und dann beliebige Anhànge zuordnen. Wechseln Sie zunàchst in die
VBA-Entwicklungsumgebung, wàhlen Sie das Menü Extras-Verweise an und setzen
Sie eine Referenz auf "Microsoft Outlook x.0 Object Library" (x.0= 12.0 für
Outlook 2007, 11.0 für Outlook 2003, 10.0 für Outlook 2002 oder 9.0 für
Outlook 2000). Außerdem benötigen Sie eine Schaltflàche mit folgender
Ereignisprozedur "Beim Klicken":

Private Sub btnSendReports_Click()
Dim objOutl As Outlook.Application
Dim objMail As Outlook.MailItem

DoCmd.OutputTo acOutputReport, _
"Preisliste", acFormatRTF, _
"Z:\Test\Preisliste.rtf"
DoCmd.OutputTo acOutputReport, _
"Katalog", acFormatRTF, _
"Z:\Test\Katalog.rtf"
Set objOutl = CreateObject("Outlook.Application")
Set objMail = objOutl.CreateItem(olMailItem)
With objMail
.Subject = "Betreff..."
.Body = "Nachrichtentext..."
.Attachments.Add "Z:\Test\Preisliste.rtf"
.Attachments.Add "Z:\Test\Katalog.rtf"
.Attachments.Add "Z:\Test\Datei.doc"
.Attachments.Add "Z:\Test\Datei.ppt"
.Display
End With

End Sub
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Ich hab das umbeschrieben und eine Liste der verfügbaren Reports zur Auswahl
gestellt.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Private Sub CMDSendber_Click()
On Error GoTo Err_CMDSendber_Click
Dim dbs As Database, ctr As Container, Replist As String, AdrRep As String,
Entfzeich As String, Replist2 As String
Dim objOutl As Outlook.Application
Dim objMail As Outlook.MailItem
Set dbs = CurrentDb
Set ctr = dbs.Containers!Reports
Replist = Replist1.Value
Replist2 = Replist
Entfzeich = InStr(Replist2, "/")
Mid(Replist2, Entfzeich, 1) = " "
AdrRep = "D:\Test\" & Replist2 & ".rtf"

DoCmd.OutputTo acOutputReport, Replist, acFormatRTF, AdrRep

Set objOutl = CreateObject("Outlook.Application")
Set objMail = objOutl.CreateItem(olMailItem)
With objMail
.Subject = "Betreff..."
.Body = "Nachrichtentext..."
.Attachments.Add AdrRep
.Display
End With

Exit_CMDSendber_Click:
Exit Sub

Err_CMDSendber_Click:
MsgBox Err.Description
Resume Exit_CMDSendber_Click

End Sub
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Es muss noch eine Listbox "Replist1" erstellt werden
Mit den Eigenschaften:
Herkunftstyp: Tabelle/Abfrage
Datensatzherkunft: SELECT MSysObjects.Name FROM MSysObjects WHERE
(((MSysObjects.Name)) AND ((MSysObjects.Type)=-32764)) ORDER BY
MSysObjects.Name;
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Diese Anweisungen exportieren zunàchst zwei Berichte - Preisliste und
Katalog - im RTF-Format. Dann wird eine Verbindung zu Outlook aufgebaut und
eine neue Nachricht erstellt. Dieser Nachricht ordnen wir dann Betreff und
Nachrichtentext sowie vier Dateien - Preisliste, Katalog, Word- und
PowerPoint-Datei - als Anhang zu. Abschließend wird die Nachricht angezeigt
und kann dann nach Festlegung des Empfàngers auf die Reise geschickt werden.


"Michael Marschall" schrieb im
Newsbeitrag
news:
Hallo,
gibt es eine Möglichkeit Outlook (E-Mail versand) aus Access zu
starten ? Und diesem dann auch noch einige Dinge vorzugeben (Betreff
usw.)

Danke im voraus

Ähnliche fragen