Hallo,
brauche mal eure Hilfe.
Möchte mehrere Postfächer in Outlook auslesen.
Die Namen der Postfächer stehen in einer Tabelle, auf die Tabelle wird mit Recordset zugegriffen.
Set RS = CurrentDb.OpenRecordset("tblPfAnalyse", dbOpenDynaset, dbSeeChanges)
Auf die Postfächer kann aber nur zugegriffen werden, wenn dieses auch in Outlook eingebunden ist.
Jetzt habe ich versucht wenn ein Postfach nicht eingebunden ist den Fehler abzufangen und mehr oder weniger das
nicht vorhandene Postfach zu überspringen. Leider funkt das aber nicht und es wird der Fehler 'Objekt nicht vorhanden' angezeigt.
Wie kann ich diesen Fehler abfangen bzw. übergehen so das mit dem nächstem Postfach in der Tabelle (Recordset) fortgeführt wird?
Hier der bisherige Code:
Sub tblPfAnalyse()
Dim objOutlook As Object, objnSpace As Object, objFolder As Object, RS As DAO.Recordset, PfName As String
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set RS = CurrentDb.OpenRecordset("tblPfAnalyse", dbOpenDynaset, dbSeeChanges)
Do While Not RS.EOF
On Error GoTo Err
PfName = RS!ObjektName
Set objFolder = objnSpace.Folders(PfName).Folders("Posteingang")
MsgBox "Mails in Posteingang von '" & PfName & "': " & objFolder.Items.Count
Resume_Err:
RS.MoveNext
Loop
Set objOutlook = Nothing
Set objnSpace = Nothing
Set objFolder = Nothing
RS.Close: Set RS = Nothing
Exit Sub
Err:
MsgBox Err.Description
GoTo Resume_Err
End Sub
Hallo,
was hast du in PfName stehen? Bei mir würde "Persönliche Ordner" drin stehen.
Meinst du mit Postfach das Emailkonto? Falls ja ist dein Code nicht richtig.
Andreas
Hallo,
unter PfName steht dann der Name des eingebundenen Postfaches.
Also ich habe ja mein Stantart Postfach das den Namen 'Postfach - Vorname.Nachname' trägt.
Dann habe ich noch weitere andere Postfächer in mein Outlook eingebunden die in etwa die Namen wie folgt tragen.
Postfach - ABC
Postfach - XYZ
Postfach - 123
Postfach - 987
Diese stehen dann in der Tabelle bzw. Recordset.
Jetzt lasse ich den Code laufen, welcher auch problemlos läuft.
Nur wenn z.B. Postfach - XYZ nicht in Outlook als Postfach existiert, bekomme ich 'Objekt nicht vorhanden'
Das soll dann aber übersprungen werden und mit Postfach - 123 weiter machen...
Dafür hatte ich dann zum Fehler abfangen
Err:
MsgBox Err.Description
GoTo Resume_Err
und mit sollte dann das nächste Postfach in der Liste angesprochen werden
Resume_Err:
RS.MoveNext
Loop
Geht aber leider nicht so, aber wie kann es gehen?
Gruß Marc
Hallo,
du könntest z.B. die Err.Number eines erzeugten Fehglers ermitteln und dann in der Fehlerbehandlung die Nummer mit dem --- bekomme ich 'Objekt nicht vorhanden' --- Fewhlercode vergleichen.
Entspricht die Fehlernummer diesem Ereignis, dann KÖNNTEST du per Resume Next diesen Fehler ignorieren und im Code weiterlaufen.
sieh mal dazu hier rein:
http://devstack.net/wordpress/?p=152 (http://devstack.net/wordpress/?p=152)
HTH
Peter
p.s. unsauber aber funktioniert
EDIT: Link berichtigt
Hallo,
danke für den Tipp mit der Err.Number...
Kannte das zwar, aber bin absolut nicht darauf gekommen das es damit funktionieren könnte.
Gelöst habe ich es jetzt:
If Err.Number <> 0 Then
GoTo Err
End If
Resume_Err:
RS.MoveNext
Loop
Err:
MsgBox Err.Description
GoTo Resume_Err
Danke & Gruß