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
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
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
Versuch es mal so:
Set MapiWB = outApp.Session.GetDefaultFolder(olFolderCalendar).Folders("Weiterbildung-HSL")
Danke nochmal für deine Antwort.
Es komm wieder der selbe Fehler... "Ein Objekt wurde nicht gefunden"
Hmmm....
Vielleicht noch nen Vorschlag?!
Grüße
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.
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
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.