Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Daniel92 am Februar 14, 2018, 11:20:45

Titel: Termine in anderen Kalender eintragen
Beitrag von: Daniel92 am Februar 14, 2018, 11:20:45
Hallo zusammen,

ich hab eine Modifizierung bei meinem Schulungstool vor und hoffe ihr könnt mir helfen.

Bisher verschicke ich aus Access aus Termine in Outlook und diese werden in meinem Standard Kalender eingetragen. Jetzt möchte ich, dass die Termine nicht in meinem Standard Kalender, sondern in einem dafür angelegten Kalender eingetragen werden.
Ich hab den Mapi Teil hinzugefügt um dies hinzubekommen, aber stattdessen bekomme ich den Fehler "Objekt wurde nicht gefunden"

Mein Code sieht so aus:

.
.
.
    Dim outApp As Outlook.Application                               ' Outlook Anwendungsobjekt
    Dim outtest As Outlook.AppointmentItem                          ' Besprechungsobjekt Objekt
    Dim myRequiredAttendee As Outlook.Recipient                     ' Besprechungsanfrage Teilnehmer 
    Dim MapiWB As Outlook.MAPIFolder

    Set outApp = New Outlook.Application                            ' erstellt neue, leere Mail
    Set outtest = outApp.CreateItem(olAppointmentItem)              ' Besprechung erstellen und Mail befüllen   
    Set MapiWB = outApp.GetNamespace("MAPI").Session.Folders("Outlook").Folders("Kalender").Folder("Weiterbildung-HSL")
   
    With outtest
        .MeetingStatus = olMeeting                                  'MeetingStatus wird zur Besprechung
        .Start = Start(counter1)
        .End = Ende(counter1)
        .Body = "Bitte um Zu- oder Absage"                          'Mail befüllen
        .AllDayEvent = False
        .ReminderMinutesBeforeStart = 15
        .Subject = parSubject & "_" & "Termin" & counter1 + 1                      'Betreff. Da für Besprechung keine MailID verfügbar wurde Laufnummer hinzugefügt
.
.
.
    End With
    End If
    Next counter1



Mein Fehler liegt glaub ich in der Zeile

Set MapiWB = outApp.GetNamespace("MAPI").Session.Folders("Outlook").Folders("Kalender").Folder("Weiterbildung-HSL")

Wie muss ich den Code ändern damit die verschickten Termine nun im Kalender "Weiterbildung-HSL" landen?

Beste Grüße
Daniel
Titel: Re: Termine in anderen Kalender eintragen
Beitrag von: markusxy am Februar 14, 2018, 12:17:48
CreateItem sollte man nur bei einem Standard Ordner verwenden. Ansonsten Items.add
Beispiele finden sich wie immer in der VBA Hilfe.

...
    Dim outApp As Outlook.Application                               ' Outlook Anwendungsobjekt
    Dim outtest As Outlook.AppointmentItem                          ' Besprechungsobjekt Objekt
    Dim myRequiredAttendee As Outlook.Recipient                     ' Besprechungsanfrage Teilnehmer 
    Dim MapiWB As Outlook.MAPIFolder

    Set outApp = New Outlook.Application                            ' erstellt neue, leere Mail
    Set MapiWB = outApp.GetNamespace("MAPI").Session.Folders("Outlook").Folders("Kalender").Folder("Weiterbildung-HSL")
    Set outtest = MapiWB.items.Add(olAppointmentItem)              ' Besprechung erstellen       
...


LG Markus
Titel: Re: Termine in anderen Kalender eintragen
Beitrag von: Daniel92 am Februar 14, 2018, 12:59:53
Hallo Markus,

danke für dein Antwort.
Ich kann leider nicht auf die Hilfe Funktion zugreifen, die ist bei uns gesperrt...
Hab den Code angepasst, Fehlermeldung kommt immer noch die Selbe.
Hast vielleicht noch eine andere Idee?

Grüße
Daniel
Titel: Re: Termine in anderen Kalender eintragen
Beitrag von: markusxy am Februar 14, 2018, 13:19:27
Versuch es mal so:

Set MapiWB = outApp.Session.GetDefaultFolder(olFolderCalendar).Folders("Weiterbildung-HSL")
Titel: Re: Termine in anderen Kalender eintragen
Beitrag von: Daniel92 am Februar 14, 2018, 14:04:19
Danke nochmal für deine Antwort.
Es komm wieder der selbe Fehler... "Ein Objekt wurde nicht gefunden"
Hmmm....
Vielleicht noch nen Vorschlag?!
Grüße
Titel: Re: Termine in anderen Kalender eintragen
Beitrag von: markusxy am Februar 14, 2018, 17:22:12
Zitat von: Daniel92 am Februar 14, 2018, 14:04:19
Danke nochmal für deine Antwort.
Es komm wieder der selbe Fehler... "Ein Objekt wurde nicht gefunden"

Dann ist der Ordner so wohl nicht vorhanden. Sonst würde er ja gefunden werden.
Gib doch mal einfach alle Ordner im Direktbereich aus.
Titel: Re: Termine in anderen Kalender eintragen
Beitrag von: Daniel92 am Februar 16, 2018, 11:34:20
Hallo zusammen,

habe jetzt einen anderen Ansatz. Es wurde ein extra Konto Namens Weiterbildung-HSL angelegt. Auf dieses Konto haben mehrere Zugriff. Die Termine sollen nun von diesem Konto und nicht von meinem eigenen verschickt werden und somit auch in den Kalender Weiterbildung-HSL eingetragen werden.

Leider funktioniert das auch nicht so einfach wie geplant. VBA findet den 2. Account nicht.
Muss ich da was beachten beim zuordnen?


Set oAccount = "Weiterbildung-HSL"


ohne Anführungszeichen funktioniert es auch nicht


Hier der ganze Code:

...
    Dim outApp As Outlook.Application                               ' Outlook Anwendungsobjekt
    Dim outtest As Outlook.AppointmentItem                          ' Besprechungsobjekt Objekt
    Dim myRequiredAttendee As Outlook.Recipient                     ' Besprechungsanfrage Teilnehmer
    Dim oAccount As Outlook.Account

    Set outApp = New Outlook.Application                            ' erstellt neue, leere Mail
    Set outtest = outApp.CreateItem(olAppointmentItem)              ' Besprechung erstellen und Mail befüllen
    Set oAccount = "Weiterbildung-HSL"


    With outtest
        .MeetingStatus = olMeeting                                  'MeetingStatus wird zur Besprechung
        .Start = Start(counter1)
        .End = Ende(counter1)
        .Body = "Bitte um Zu- oder Absage"                          'Mail befüllen
        .AllDayEvent = False
        .ReminderMinutesBeforeStart = 15
        .Subject = parSubject & "_" & "Termin" & counter1 + 1                      'Betreff. Da für Besprechung keine MailID verfügbar wurde Laufnummer hinzugefügt
       
....   

        .Save
        .SendUsingAccount = oAccount
        .Send


Ich hoffe auf eure Hilfe.

Beste Grüße
Daniel
Titel: Re: Termine in anderen Kalender eintragen
Beitrag von: PhilS am Februar 16, 2018, 12:21:48
Zitat von: Daniel92 am Februar 16, 2018, 11:34:20Leider funktioniert das auch nicht so einfach wie geplant. VBA findet den 2. Account nicht.
Die String-Zuweisung zu einem Account-Objekt funktioniert so nicht.

Auf meiner Webseite ist ein Beispiel, wie man eine Email über anderen Account versenden (http://codekabinett.com/page.php?Theme=11&Lang=1#outlook-vba-absender-email-account-festlegen) kann. Das sollte für deine Termine analog funktionieren, nur dass du den richtigen Account über den DisplayName und nicht die SmtpAddress ermittelst.