PDA

Vollständige Version anzeigen : Zugriff auf OLE Objekt in Datenbank und Versand per Email


annette
11.05.2001, 11:18
Problem:
habe eine Access Tabelle, in der in Spalte X OLE Objekte (Excel-Tabellen, Word-Dokumente) eingebettet sind.
Diese Dokumente sollen als Email Attachment an Kunden versandt werden. Mit dem AP-Serienmail-Manager greife ich auf die Access Abfrage zu, die mir zu den jeweiligen Kunden das korrekte Dokument zuordnet, kann aber die OLE Objekte nicht in die Mails einfügen.
Wer hat eine Idee, wie man dieses Problem lösen kann?

AWSW
11.05.2001, 12:57
Also ich mache das so ähnlich, nur gebe ich erst Berichte aus Access aus als Datei...

Das Problem was besteht, ist dass du meines Wissens nach nur eine Datei an die Mail anhängen kannst. Ich habe mir dazu einfallen lassen, die Berichte alle in ein Verzeichnis zu speichern und mit der WinRAR.exe (PACKPROGRAMM) als Bericht.zip zu packen und dann an die Mail zu hängen plus den Textinhalt der Mail von Access gesteuert einzu fügen... Die WinRAR.exe wirst Du wahrscheinlich irgendwo haben oder finden. Ich habe sie im Script als Mail.exe bezeichnet...

Aus meiner DB: (Zusätzlich mußt Du noch unter EXTRAS / VERWEISE das MS Calender Control Object 9.0 für Outlook auswählen)
Siehe: CalObj90.jpg
<hr>
Private Sub Befehl658_Click()
On Error GoTo Err_Befehl658_Click

DoCmd.RunCommand acCmdSaveRecord
DoCmd.Minimize
'Bericht Einweisungsprotokoll
DoCmd.OpenReport "Bericht Einweisungsprotokoll", acPreview, , "[Daten 1_ID]='" & Me.[Daten 1_ID] & "'"
DoCmd.OutputTo acReport, "Bericht Einweisungsprotokoll", acFormatSNP, "C:\AW-Tool2000\OutPutTo\Bericht Einweisungsprotokoll.snp"
DoCmd.OutputTo acReport, "Bericht Einweisungsprotokoll", acFormatRTF, "C:\AW-Tool2000\OutPutTo\Bericht Einweisungsprotokoll.rtf"
DoCmd.Close acReport, "Bericht Einweisungsprotokoll"

'Bericht Kundendaten Übergabeprotokoll
DoCmd.OpenReport "Bericht Kundendaten Übergabeprotokoll", acPreview, , "[Daten 1_ID]='" & Me.[Daten 1_ID] & "'"
DoCmd.OutputTo acReport, "Bericht Kundendaten Übergabeprotokoll", acFormatSNP, "C:\AW-Tool2000\OutPutTo\Bericht Kundendaten Übergabeprotokoll.snp"
DoCmd.OutputTo acReport, "Bericht Kundendaten Übergabeprotokoll", acFormatRTF, "C:\AW-Tool2000\OutPutTo\Bericht Kundendaten Übergabeprotokoll.rtf"
DoCmd.Close acReport, "Bericht Kundendaten Übergabeprotokoll"

'... ... ... ... ... bei mir 22 Dokumente

Call Shell("C:\AW-Tool2000\Tool\Mail.exe a -m5 -ibck -ep C:\AW-Tool2000\OutPutTo\Berichte.zip C:\AW-Tool2000\OutPutTo\*.*", 1)
MsgBox "Alle Berichte des aktuellen Datensatzes: " & Me.Kunde & " - " & Me.Orte & " - " & Me.STS_AuftragsNr & " wurden als SNP & RTF Dateien exportiert und werden nun in eine Berichte.zip Datei gepackt hinterlegt. Das .SNP - Format bietet das beste Ergebnis zum Betrachten von exportierten Berichten." & Chr(13) & "" & Chr(13) & "Der Vorgang kann je nach Systemauslastung einen Moment dauern.", vbInformation, "Information zum Senden..."


'##############################

Dim MText As Variant
Dim NewApp As New Outlook.Application
Dim NewMail As Outlook.MailItem
Dim NewReci As Outlook.Recipient
Dim NewAtta As Outlook.Attachment
Dim Empfaenger As String
Dim Anhang As String

Set NewApp = CreateObject("Outlook.Application")
Set NewMail = NewApp.CreateItem(olMailItem)
NewMail.Subject = "Berichte zum Auftrag: " & Me.Kunde & " - " & Me.Orte & " - " & Me.STS_AuftragsNr
'Set NewReci = NewMail.Recipients.Add("@")
'NewReci.Type = olTo
MText = MText & "Dieser automatisch generierten Mail ist eine 'Berichte.zip' Datei angehängt zum Auftrag:" & Chr(13)
MText = MText & "" & Me.Kunde & " - " & Me.Orte & " - " & Me.STS_AuftragsNr & Chr(13) & Chr(13)
MText = MText & "Die Berichte sind im MS SnapShotViewer (.SNP) und im MS Word RichTextFormat (.RTF) vorhanden." & Chr(13) & Chr(13)
MText = MText & "Sie benötigen zum Betrachten der .SNP - Dateien den MS SnapShotViewer." & Chr(13)
MText = MText & "Dieser wird eventuell beim ersten Aufrufen einer dieser Dateien installiert." & Chr(13)
MText = MText & "Das Setup verlangt dann nach der CD 1 des MS Office 2000 - Paketes." & Chr(13) & Chr(13)
MText = MText & "Sie finden den SnapShotViewer auch bei uns im Intranet unter:" & Chr(13)
MText = MText & "http://x.html" & Chr(13)
MText = MText & "oder im Internet bei Microsoft als Version für MS Office 97 und MS Office 2000:" & Chr(13)
MText = MText & "http://www.OfficeUpdate.Microsoft.com/Germany/2000/DownloadDetails/Snapshot_Viewer.htm" & Chr(13)
MText = MText & "oder im Internet bei Microsoft als Version für MS Office 97 und MS Office 2000:" & Chr(13)
MText = MText & "http://www.OfficeUpdate.Microsoft.com/Germany/2000/DownloadItems/SnpVw90.exe" & Chr(13)
MText = MText & "Falls nicht schon installiert, finden Sie die Anwendung WinZip unter:" & Chr(13)
MText = MText & "http://www.winzip.de" & Chr(13) & Chr(13)
MText = MText & "Die Installation geschieht auf eigene Gefahr! Es wird keine Haftung für Schäden übernommen!" & Chr(13) & Chr(13) & Chr(13)
MText = MText & "Mit freundlichen Grüßen " & Chr(13) & Chr(13) & "Firma" & Chr(13) & Me.Name_Techniker & Chr(13) & Me.Tel_Techniker & Chr(13) & Me.Mail_Techniker & Chr(13) & Chr(13) & Chr(13)
NewMail.Body = MText
Anhang = "C:\AW-Tool2000\OutPutTo\Berichte.zip"
Set NewAtta = NewMail.Attachments.Add(Anhang)
NewMail.Save
'NewMail.Send
'NewMail.Send sendet direkt die Mail, wenn oben der Empfänger angegeben ist
Set NewReci = Nothing
Set NewAtta = Nothing
Set NewMail = Nothing
Set NewApp = Nothing
MsgBox "MS Outlook 2000 wird nun gestartet." & Chr(13) & "" & Chr(13) & "Das Starten von Outlook kann je nach Systemauslastung einen Moment dauern." & Chr(13) & "" & Chr(13) & "Sie finden die erzeugte Mail je nach Konfiguration in Ihrem Ordner: Posteingang oder Entwürfe." & Chr(13) & "Tragen Sie noch den Empfänger ein und versenden Sie die Mail.", vbInformation, "Information zum Senden..."
DoCmd.Restore
Call Shell("outlook", vbNormalNoFocus)
'##############################

Exit_Befehl658_Click:
Exit Sub
Err_Befehl658_Click:
MsgBox "Senden der Mail abgebrochen", , "Senden abgebrochen"
Resume Exit_Befehl658_Click
End Sub

<hr>

Ich hoffe das hilft Dir etwas, bei mir klappt das sehr gut :D

Hubert Kohl
11.05.2001, 14:19
Ich benutze für meine eingebetteten Word-Dateien und Exel-tabellen die "powerups" von www.unsoftwareag.com. (http://www.unsoftwareag.com.) Diese enthalten eine Funktion, welche die OLE auf Knopfdruck als Datei exportieren. Damit könntest Du ganz leicht Deinen Emailanhang erzeugen.