Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: capsly am März 30, 2018, 17:45:06

Titel: Verknüpfung mit Outlook 2016
Beitrag von: capsly am März 30, 2018, 17:45:06
Guten Tag, folgendes möchte ich erzeugen: Aus Outlook 2016 das gesammte Adressbuch übernehmen. (Ziel wäre in Access mehr Sortierfunktionen einzubauen wie z.B. Alter, Beitrittsdatum, Sprache, besuchte Kurse, bezahlte Kurse, etc etc ..). Soweit so gut. Alle Kontakte konnte ich schon automatisch übernehmen. Doch hab ich im Adressbuch nicht nur "der Kontakt" alleine sondern auch "Kontaktgruppen"; z. B; Vorstand, Kanton Tessin etc etc ... , mit spezifischen Kontakten zu diesen Kontaktgruppen gefüllt. Diese "Kontaktgruppen" kann ich nicht übernehmen.
Vielleicht kann mir jemand mit Tipps zur Seite stehen. Im Voraus besten Dank. Grüsse aus der CH - Harry
Titel: Re: Verknüpfung mit Outlook 2016
Beitrag von: PhilS am April 01, 2018, 14:16:16
Zitat von: capsly am März 30, 2018, 17:45:06Doch hab ich im Adressbuch nicht nur "der Kontakt" alleine sondern auch "Kontaktgruppen"; z. B; Vorstand, Kanton Tessin etc etc ... , mit spezifischen Kontakten zu diesen Kontaktgruppen gefüllt. Diese "Kontaktgruppen" kann ich nicht übernehmen.
Das in deiner Frage mehrfach verwendete Wort "übernehmen" ist etwas ungenau.

Hier ein Beispiel, wie man die Kontaktgruppen mit Outlook-Automation auslesen kann. Application im Code ist das Outlook.Application-Object, das musst du ggfls. an deinen Code anpassen.
Public Sub PrintContactLists()

    Dim distListItems As Outlook.Items
    Dim distList As Outlook.DistListItem
    Dim members As String
    Dim i As Long
   
    Set distListItems = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items.Restrict("[MessageClass]='IPM.DistList'")
    For Each distList In distListItems
        Debug.Print "Name: " & distList.DLName
        Debug.Print "Anzahl Miglieder: " & distList.MemberCount
        For i = 1 To distList.MemberCount
            members = members & distList.GetMember(i).Name & ", "
        Next
        Debug.Print "Miglieder:" & members
        members = ""
    Next distList
   
    Set distList = Nothing
    Set distListItems = Nothing

End Sub