collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 67
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13993
  • stats Beiträge insgesamt: 66762
  • stats Themen insgesamt: 9002
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Termine in anderen Kalender eintragen  (Gelesen 860 mal)

Offline Daniel92

  • Newbie
  • Beiträge: 47
Termine in anderen Kalender eintragen
« 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
« Letzte Änderung: Februar 14, 2018, 11:30:06 von Daniel92 »
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 197
Re: Termine in anderen Kalender eintragen
« Antwort #1 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
10 Jahre Access
 

Offline Daniel92

  • Newbie
  • Beiträge: 47
Re: Termine in anderen Kalender eintragen
« Antwort #2 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
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 197
Re: Termine in anderen Kalender eintragen
« Antwort #3 am: Februar 14, 2018, 13:19:27 »
Versuch es mal so:

Set MapiWB = outApp.Session.GetDefaultFolder(olFolderCalendar).Folders("Weiterbildung-HSL")
10 Jahre Access
 

Offline Daniel92

  • Newbie
  • Beiträge: 47
Re: Termine in anderen Kalender eintragen
« Antwort #4 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
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 197
Re: Termine in anderen Kalender eintragen
« Antwort #5 am: Februar 14, 2018, 17:22:12 »
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.
10 Jahre Access
 

Offline Daniel92

  • Newbie
  • Beiträge: 47
Re: Termine in anderen Kalender eintragen
« Antwort #6 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
 

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 346
    • Tipps zu Access, VBA, SQL und Co.
Re: Termine in anderen Kalender eintragen
« Antwort #7 am: Februar 16, 2018, 12:21:48 »
Leider 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 kann. Das sollte für deine Termine analog funktionieren, nur dass du den richtigen Account über den DisplayName und nicht die SmtpAddress ermittelst.
Neues Access 2019 Feature angekündigt: Modern Charts
 
Folgende Mitglieder bedankten sich: Daniel92