PDA

Vollständige Version anzeigen : Outlook Attachments exportieren


Forza SGD
26.04.2011, 14:20
Hallo zusammen,

Ich exportiere aus dem OutlookFolder Inbox sämtliche Attachments. Dies geschieht wie folgt mit der gängigen Lösung:

Private Sub cmd_import_Click()

Dim objOutlook As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
Dim objMailordner As Outlook.MAPIFolder
Dim objMail As Outlook.RemoteItem
Dim objAttachment As Outlook.Attachment
Dim i As Integer

On Error GoTo Err_handler

Set objOutlook = New Outlook.Application
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objMailordner = objNameSpace.GetDefaultFolder(olFolderInbox)

For i = 1 To objMailordner.Items.Count

For Each objAttachment In objMailordner.Items(i).Attachments
objAttachment.SaveAsFile "U:\Daten\Mail\" & objAttachment.FileName

Next
Next

Exit_sub:

Set objAttachment = Nothing
Set objMail = Nothing
Set objMailordner = Nothing
Set objNameSpace = Nothing
Set objOutlook = Nothing

Exit Sub

Err_handler:

MsgBox "Fehlernummer: " & Err.Number _
& vbCrLf & "Beschreibung: " & Err.Description
Resume Exit_sub

End Sub

Wie schaffe ich es aber, das er lediglich die Attachments exportiert mit dem Format xlsx bzw. einer vorgegebenen Namenskovention?

Besten Dank schonmal!

Atrus2711
26.04.2011, 14:23
Na, wenn du den Dateinamen schon greifen kannst, ist das doch wenig Arbeit:

'...
If objAttachment.Filename LIKE "*.xlsx" Then
objAttachment.SaveAsFile "U:\Daten\Mail\" & objAttachment.FileName
End If
'...

Forza SGD
26.04.2011, 14:33
Danke schön,

Die Lösung hat ich jetzt irgendwie gar ni auf dem Schirm - also mit "*.xlsx" funktioniert es wunderbar.

Aber die Geschichte geht noch weiter. Diese Tabelle importiere ich nach Access. Gibt es eine Möglichkeit die Outlook.Attachments direkt in eine Accesstabelle zu importieren, quasi ohne diesen Zwischenschritt?

Atrus2711
26.04.2011, 14:45
Hi,

in welcher Form?


OLE-Objekt? Da sollten dir die Befehle GetChunk und AppendChunk helfen. Such mal danach im Forum.
Als Hyperlinks: da brauchst du eh nur die Dateinamen
Als Anlagefeld (ab 2007): boff, keine Ahnung... :)

Forza SGD
26.04.2011, 14:58
Tach Martin,

Das sagt mir jetzt alles nicht bzw. hab ich damit noch nichts gemacht. Also die Ausgangslage ist folgende - bis zu einem bestimmten Stichtag kommen eine Anzahl X EMails in einen Gruppenbriefkasten. Alle haben als Anhang eine Excel - Tabelle gleicher Form - diese sollen ausgelesen werden und in einen tabelle in Acces zusammengefasst werden. Ich hatte es mir bisher so gedacht:

Alle in einen Ordner verschieben und dann nach Access importieren - hab aber keinen Plan wie sinnig oder unsinnig das ist bzw. ob man da auch leichter ans Ziel kommt.

Danke für deine Hinweise - ich schaus mir mal an!

Atrus2711
26.04.2011, 15:10
Ah. Ich dachte, es ginge umd die Mails als Tabelle, und nicht um die Anlagen.

:)

Dann leg die xlsx-Files erstmal ab. Der Import geschieht dann per Docmd.TranferSpreadsheet. Wenn die Files alle gleichartig sind, kannst du das vielleicht gleich in die Speicher-Schleife einbauen.

Aber bei xlsx-Importen ist eigentlich immer was faul, denn so enge Handschellen, wie sie für Access nötig wären, hat man in Excel nicht so gerne.

Forza SGD
26.04.2011, 15:19
Oh - klingt nicht sehr erbaulich :upps:

Gut dann mach ich es erstmal so.

Danke für Deine Hilfe!