rdiller
Goto Top

Access2010 - Outlook2010 Zugriff auf den Kalender funktioniert nicht mehr

Lieb Kollegen,

folgendes Problem:
Nach und nach werden alle Office Versionen von 2007 auf 2010 umgestellt.
Bei einer Access Anwendung wird auf einen öffentlichen Kalender zugegriffen un desses Inhalt ausgelesen. Mit der 2007'er Version funktioniert das problemlos, aber bei der 2010'er Version erscheint die Fehlermeldung: "Der versuchte Vorgang konnte nicht ausgeführt werden. Ein Objekt wurde nicht gefunden."

Der Fehler wird durch den Befehl "Set objPublicFolder = objNameSpace.Folders("Öffentliche Ordner")....) hervorgerufen.

Kompletter Code:
Set objOutlook = New Outlook.Application
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objPublicFolder = objNameSpace.Folders("Öffentliche Ordner").Folders("Alle Öffentlichen Ordner").Folders("DE").Folders("Change Kalender AW-Germany").Folders("Changekalender AW Frankfurt/Aachen")
Set fldPublicCalender = objPublicFolder

Die Verweise auf die Object Libraries (14'er) sind korrekt und das Kompilieren erzeugt keine Fehler.

Ich hoffe Ihr könnt mir Helfen.

Danke

Ralf

Content-ID: 186527

Url: https://administrator.de/contentid/186527

Ausgedruckt am: 25.11.2024 um 12:11 Uhr

NetWolf
NetWolf 15.06.2012 um 10:19:50 Uhr
Goto Top
Moin Moin,

erst mal im Einzelschritt den Code ausführen und herausfinden, in welcher Zeile der Fehler entsteht.

Da 2010 die Öffentlichen Ordner geändert hat auf "USERNAME.ÖffenlicherOrdnerName" könnte das dein Problem sein.

Grüße aus Rostock
Wolfgang
(Netwolf)
RDiller
RDiller 15.06.2012 um 11:25:51 Uhr
Goto Top
Das sieht wirkilch so aus.
Der Fehler erscheint bei:
Set objPublicFolder = objNameSpace.Folders("Öffentliche Ordner").Folders("Alle Öffentlichen Ordner").Folders("DE").Folders("Change Kalender AW-Germany").Folders("Changekalender AW Frankfurt/Aachen")

Ich habe verschiedene Varianten versucht, aber keine funktioniert.
z.B.:
Set objPublicFolder = objNameSpace.Folders("user@domain").Folders("Öffentliche Ordner").Folders("Alle Öffentlichen Ordner").Folders("DE").Folders("Change Kalender AW-Germany").Folders("Changekalender AW Frankfurt/Aachen")
NetWolf
NetWolf 15.06.2012 um 12:38:31 Uhr
Goto Top
Ich denke du hast mich noch nicht verstanden:

objNameSpace.Folders("user@domain").Folders("Öffentliche Ordner")

Die Bezeichnung "Öffentliche Ordner" gibt es so nicht mehr!
diese werden nun wie folgt benannt: "USERNAME.Öffentliche Ordner"

Keine Ahnung warum MS das so geändert hat, aber es bereitet nicht nur dir Probleme.

Grüße aus Rostock
Wolfgang
(Netwolf)
RDiller
RDiller 15.06.2012 um 14:16:41 Uhr
Goto Top
OK hier die Lösung:

Aus irgend einem Grund muss man erst eine Referenz zu der Root des Öffentlich Ordners erstellen und kann danach zum eigentlichen Ziel referenzieren.


Hier der Code, der erst abprüft, welche Outlook Version genutzt wird und dann die Emailadresse des Nutzers ermittelt.

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

If InStr(objOutlook.Application.Version, "14") Then
Set accs = objNameSpace.Accounts
For Each Account In accs
If Account.AccountType = olExchange And Account.SmtpAddress = objNameSpace.Session.DefaultStore Then
pupfldr = "Öffentliche Ordner - " & Account.SmtpAddress
Set pub = objNameSpace.Folders(pupfldr)
objPublicFolder = pub.Folders.Item("Alle Öffentlichen Ordner").Folders.Item("XX").Folders.Item("YYY").Folders.Item("ZZZ")
)
End If
Next
Else
Set objPublicFolder = objNameSpace.Folders("Öffentliche Ordner").Folders("Alle Öffentlichen Ordner").Folders("XXX").Folders("YYY").Folders("ZZZ")

End If