Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Auslesen eines bestimmten Outlook-Ordners per VBA

Access 365 2024 2021 2019 2016 2013 2010

FRAGE Ich habe eine Access-Lösung erstellt, mit der ich Nachrichten aus dem Posteingang von Outlook auslesen kann. Das funktioniert auch einwandfrei. Ich möchte nun aber Nachrichten aus einem anderen Nachrichtenordner auslesen, in den bestimmte Nachrichten per Regel verschoben worden sind. Wie sehen die VBA-Anweisungen aus, um zum Beispiel einen Unterordner "Bestellungen" im Posteingang zu adressieren?

Für den Posteingang verwende ich den folgenden Code:

Dim objOutlook As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder

Set objOutlook = GetObject(, "Outlook.Application")
Set objNS = objOutlook.GetNamespace("MAPI")
Set objFolder = objNS.GetDefaultFolder(olFolderInbox)

Diverse Anfragen

ANTWORT Fügen Sie dazu nach der Zeile mit "GetDefaultFolder" folgende Anweisung ein:

Set objFolder = objFolder.Folders.Item("Bestellungen")

In der Auflistung "Folders" werden die Unterordner des betreffenden Ordners verwaltet, die Sie dann per ".Item(<Name>)" adressieren können. Wenn sich der Unterordner an einer anderen, nicht so einfach zu adressierenden Stelle befindet, verwenden Sie für den Zugriff "GetFolderFromID()" und die ID des gewünschten Unterordners wie folgt:

  1. Öffnen Sie den betreffenden Ordner in Outlook.
  2. Wechseln Sie mit Alt + F11 in die VBA-Entwicklungsumgebung.
  3. Öffnen Sie das Direktfenster mit Strg + G und geben Sie folgende Anweisung ein:
? ActiveExplorer.CurrentFolder.EntryID
  1. Es wird nun eine alphanumerische Zeichenkette wie beispielsweise "3E5D70E818A2454B989B80585AC3B94DC28" angezeigt. Das ist die eindeutige ID des Ordners.
  2. Ändern Sie Ihre Routine wie folgt:
Set objOutlook = GetObject(, "Outlook.Application")
Set objNS = objOutlook.GetNamespace("MAPI")
Set objFolder = _
  objNS.GetFolderFromID( _
  "3E5D70E818A2454B989B80585AC3B94DC28")

Damit ist ein Zugriff auf Ordner an beliebiger Position in der Ordnerstruktur möglich.