Access Daten als Kontakte in Outlook

  • Sonstige

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Krondor.

    Access Daten als Kontakte in Outlook

    Hi und hallo

    Ich brauche ein Funktion mit der ich Adressen aus Access als neue Kontakte in Outlook einfügen kann.

    Ich habe jedoch schon Probleme, wenn ich versuche auf Outlook zuzugreifen.

    Ich habe irgendwas über "Mapi" gelesen aber ich habe keine Ahnung was das ist. Kann das mal kurz einer erläutern?

    Ich fange einfach so an:
    Set oOutlook = New Outlook.Application

    Aber keine Ahnung wie es dann weiter geht :P
    Gibt es irgendwo was vernünftiges zum Nachschlagen, wo man sowas finden kann, außer der Hilfe? Oder muss man sich direkt en Buch kaufen.

    MfG und danke für jede Hilfe,
    Krondor
    Auf dieser Seite findest du ein Beispiel, wie man auf Outlook und dessen Kontakte zugreift. Ich hoffe, dass kann dir einen kleinen Denkanstoss geben.
    Mozilla Thunderbird an die Macht!!

    Mozilla hat nichts mit VBA zu tun, also warum solche sinnlosen Beiträge Mad?
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

    Zuerstmal hab ich auch selbst zu Hause
    Mozilla Firefox
    Mozilla Thunderbird und
    Mozilla Sunbird.

    Ich finde auch die sind super aber was mein Chef macht ist noch immer was anderes wie das was ich mache. Davon abgesehen gibt es noch immer keine Alternative zu Office in Sachen mit VB umbauen...

    Ich weiß auch, dass die anderen OpenSource sind und mit Java oder C++ laufen aber das tut im Moment nix zu Sache.

    Hat jemand nen guten Tipp für mich in Sachen Topic-Thema. Dankeschön für jede Hilfe :)
    Hi,

    @Krondor
    Benutze das nächste mal bitte erst die Suchfunktion des Boards. Unter dem Suchwort "Outlook" habe ich unter anderem diesen Beitrag gefunden. ;)


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    Schon mal danke. Aber irgendwie funktioniert der Kram nicht der in dem anderen Forenthread beschrieben wird.
    Ich hab die Sachen einfach mal eingefügt aber er sagt mir dass er die Objekttypen nicht kennt. Muss ich da irgendwas bestimmtes in den Verweisen einstellen ? Oder ist da irgendwas mit dem Mapi einzustellen.
    Mit den Ol - Objekten kann ich nämlich irgendwie nix anfangen :(
    Hi,

    Muss ich da irgendwas bestimmtes in den Verweisen einstellen ?


    Zitat aus dem oben verlinkten Thread
    ...
    Um den Code auszuführen, benötigst Du eine Form mit einer TextBox "txt" (multiLine auf True).
    Es muss einen Verweis auf die "MS Outlook 9.0 Object Library" geben.
    ...


    Natütlich muss Outlook installiert sein. Sonst fehlt die Library!!


    bye ...

    LaMa5.

    P.S. Wenn Du noch weitere Probleme hast, beschreibe sie bitte möglichst genau und präsentiere die entsprechenden Codeabschnitte. Danke.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()

    Er erkennt die Datentypen von den Ol Objekten nicht. Das hatte ich gemeint. Entschuldigt mich, falls ich mich etwas ungünstig ausgedrückt habe.

    Schon bei der Deklaration erkennt er die Datentypen nicht.


    Es erscheint halt die Meldung:

    Benutzerdefinierter Typ nicht definiert in der zweiten Zeile deines Codes.
    Also die Zeile:
    Dim OlNSpace As Namespace

    Habs mal so probiert....
    So komme ich halt an die Daten aber ich weiß nicht wie ich da was reinschreiben soll und neue Adressdaten erstelle:

    <code>
    Set oOutlook = New Outlook.Application
    Set addressLists = oOutlook.Explorers.Session.addressLists
    Set kontakte = addressLists.Item(1)
    Set kontaktEintraege = kontakte.AddressEntries

    MsgBox kontaktEintraege.Item(1)

    oOutlook.Quit
    </code>

    Wie kann ich also nun ein Objekt vom Typ AdressEntry erstellen und dieses dort einfügen ?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Krondor“ ()

    Also ich hab herausgefunden wie es funktioniert.

    Ich habs mal so gelöst:

    Quellcode

    1. '*************************************
    2. 'Exportiert alle Kundendaten in Outlook
    3. '*************************************
    4. Sub export_Kundendaten()
    5. '*************************************
    6. 'Findet den Ordner "Alle öffentlichen Ordner"
    7. '*************************************
    8. Dim mapiFolder As outlook.mapiFolder
    9. Dim folders As outlook.folders
    10. Dim subFolder As outlook.mapiFolder
    11. Dim ordner As String
    12. Set mapiFolder = outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
    13. Set folders = mapiFolder.Parent.Parent.folders
    14. Set subFolder = folders.GetFirst
    15. Set subFolder = folders.Item("Öffentliche Ordner").folders.Item("Alle Öffentlichen Ordner")
    16. Dim privatFolder
    17. Dim firmenFolder
    18. Set privatFolder = subFolder.folders.Item("Adressen-Privat-Kunden")
    19. Set firmenFolder = subFolder.folders.Item("Adressen-Firmen-Kunden")
    20. '*************************************
    21. 'In diesem Ordner werden nun neue Ordner
    22. 'hinzugefügt und dort kommen die Daten hinein
    23. '*************************************
    24. Dim o As New outlook.Application
    25. Dim f As outlook.mapiFolder
    26. Dim c As outlook.ContactItem
    27. Dim i As Integer
    28. 'Set f = outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
    29. 'Set f = subFolder
    30. MsgBox "Beginne mit dem Exportieren der Daten. Dies kann einige Zeit dauern.", , "Exportiere"
    31. With CurrentDb.OpenRecordset("Kunden", , dbReadOnly)
    32. For i = 1 To .RecordCount - 1
    33. .MoveNext
    34. If Not IsNull(.Fields("KU_email")) And Not IsNull(.Fields("KU_typ_nr")) Then
    35. If .Fields("KU_typ_nr") < 100 Then
    36. Set c = firmenFolder.Items.Add()
    37. If Not IsNull(.Fields("KU_vorname")) Then c.FirstName = .Fields("KU_vorname")
    38. c.LastName = .Fields("KU_name")
    39. c.Email1Address = .Fields("KU_email")
    40. c.Save
    41. Else
    42. Set c = privatFolder.Items.Add()
    43. If Not IsNull(.Fields("KU_vorname")) Then c.FirstName = .Fields("KU_vorname")
    44. c.LastName = .Fields("KU_name")
    45. c.Email1Address = .Fields("KU_email")
    46. c.Save
    47. End If
    48. End If
    49. Next
    50. End With
    51. End Sub