Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: tismo am März 27, 2018, 18:50:07

Titel: Termin in outlook Kalender eintragen
Beitrag von: tismo am März 27, 2018, 18:50:07
Hallo,

ich weiß, dass Thema wurde bereits beschrieben, aber ich komme trotz Suche in verschiedensten Foren nicht weiter.
Ich möchte einen Termin in Outlook in Kalender2 eintragen. Mit folgender vba erscheint der Eintrag immer nur im Haupt-Kalender.

Private Sub Befehl22_Click()

Dim appOL As New Outlook.Application
  Dim itm As Outlook.AppointmentItem
  Dim olNS As Outlook.NameSpace
  Dim olCal As Outlook.MAPIFolder

  Set olNS = appOL.GetNamespace("MAPI")
  Set olCal = olNS.GetDefaultFolder(olFolderCalendar).Folders("Kalender2")
    If Err Then
      Set olCal = olNS.GetDefaultFolder(olFolderCalendar).Folders.Add("Kalender2")
      Err.Clear
   End If
  Set itm = Outlook.CreateItem(olAppointmentItem)
  itm.Start = Format(Me![Datum], "dd.mm.yyyy") & " " & Format(Me![Zeit], "hh:mm")
  itm.Duration = [Dauer]
  itm.Subject = [Ereignis] & " " & [Bezeichnung]
  itm.Save

End Sub


wo liegt mein Fehler ?

Gruß,
Lars
Titel: Re: Termin in outlook Kalender eintragen
Beitrag von: markusxy am März 27, 2018, 19:16:49
Verwende die Items.add statt der CreateItem Methode.
In der VBA Hilfe finden sich Erklärungen und Beispiele falls benötigt.

LG Markus
Titel: Re: Termin in outlook Kalender eintragen
Beitrag von: tismo am März 27, 2018, 19:39:55
Danke,

Problem gelöst. Hier die vba, die funktioniert  :)
Private Sub Befehl22_Click()

Dim appOL As New Outlook.Application
  Dim itm As Outlook.AppointmentItem
  Dim olNS As Outlook.NameSpace
  Dim olCal As Outlook.MAPIFolder
 
  Set olApp = CreateObject("Outlook.Application")
  Set olNS = appOL.GetNamespace("MAPI")
  Set olCal = olNS.GetDefaultFolder(olFolderCalendar).Folders("Kalender2")
    If Err Then
      Set olCal = olNS.GetDefaultFolder(olFolderCalendar).Folders.Add("Kalender2")
      Err.Clear
   End If
 
  Set olApp = olApp.CreateItem(olAppointmentItem)
 
  olApp.Start = Format(Me![Datum], "dd.mm.yyyy") & " " & Format(Me![Zeit], "hh:mm")
  olApp.Duration = Format(Me![Dauer])
  olApp.Subject = [Ereignis] & " " & [Bezeichnung]
  olApp.Save
  olApp.Move olCal
 

End Sub

Titel: Re: Termin in outlook Kalender eintragen
Beitrag von: tismo am März 27, 2018, 20:31:35
Tja, da war ich wohl etwas voreilig ...


Ich hatte eingentlich vor gehabt, dass der Nutzer über eine Liste den entsprechenen Kalender auswählen kann.

Was muss ich anstatt
Set olCal = olNS.GetDefaultFolder(olFolderCalendar).Folders("Kalender2")

für 'Kalender2' einsetzen, wenn das Textfeld 'Kalender' heißt ?

Fehler gefunden:
Set olCal = olNS.GetDefaultFolder(olFolderCalendar).Folders(([Kalender]))