Mit Access VBA einen Termin in LotusNotes (8.5.2) setzen
Ich habe bisher ohne Problem mit der unten stehenden Funktion
aus Access heraus einen Termin (oder Erinnerung) in meinen LotusNotes Kalender
setzen können. Nach irgendeinem Notes-Update scheint es nicht mehr sauber zu
funktionieren. Er setzt 1. immer als Besprechung, egal was für einen Typ ich übergebe
und 2. immer nur auf das aktuelle Datum, nicht auf das übergebende Datum.
Weiß einer woran das liegt und was ich tun kann????
Jetzt habe ich den LotusNotes 8.5.2 Client.
Hier die bisherige Funktion:
Public Sub SendNotesAppointment(UserName As String, Subject As String, _
Body As String, AppDate As Date, StartTime As Date, MinsDuration As Integer, _
Location As String, Categories As String, AppointmentType As String, ServerName As String)
On Error GoTo ende
Dim MailDbName As String
Dim strSTime As String
Dim strETime As String
Dim CalenDoc As Object
Dim WorkSpace As Object
Dim ErrCnt As Integer
Dim Session As Object
Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")
MailDbName = ""
strSTime = CStr(FormatDateTime(StartTime, vbShortTime))
strETime = CStr(FormatDateTime(DateAdd("n", MinsDuration, StartTime), vbShortTime))
Set CalenDoc = WorkSpace.COMPOSEDOCUMENT(ServerName, MailDbName, "Appointment")
CalenDoc.FIELDSETTEXT "AppointmentType", AppointmentType
CalenDoc.Refresh
Do Until (CDate(Right(CalenDoc.fieldgettext("StartDate"), 10)) = CDate(AppDate)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "StartDate", CStr(FormatDateTime(AppDate, vbShortDate))
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
ErrCnt = 0
Do Until (CDate(CalenDoc.fieldgettext("StartTime")) = CDate(strSTime)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "StartTime", strSTime
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
ErrCnt = 0
Do Until (CDate(Right(CalenDoc.fieldgettext("EndDate"), 10)) = CDate(AppDate)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "EndDate", CStr(FormatDateTime(AppDate, vbShortDate))
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
ErrCnt = 0
Do Until (CDate(CalenDoc.fieldgettext("EndTime")) = CDate(strETime)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "EndTime", strETime
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
CalenDoc.FIELDSETTEXT "Subject", Subject
CalenDoc.FIELDSETTEXT "Location", Location
CalenDoc.FIELDSETTEXT "Categories", Categories
CalenDoc.FIELDSETTEXT "Body", Body
CalenDoc.Refresh
CalenDoc.Save
CalenDoc.Close
Set CalenDoc = Nothing
Set WorkSpace = Nothing
ende:
End Sub
aus Access heraus einen Termin (oder Erinnerung) in meinen LotusNotes Kalender
setzen können. Nach irgendeinem Notes-Update scheint es nicht mehr sauber zu
funktionieren. Er setzt 1. immer als Besprechung, egal was für einen Typ ich übergebe
und 2. immer nur auf das aktuelle Datum, nicht auf das übergebende Datum.
Weiß einer woran das liegt und was ich tun kann????
Jetzt habe ich den LotusNotes 8.5.2 Client.
Hier die bisherige Funktion:
Public Sub SendNotesAppointment(UserName As String, Subject As String, _
Body As String, AppDate As Date, StartTime As Date, MinsDuration As Integer, _
Location As String, Categories As String, AppointmentType As String, ServerName As String)
On Error GoTo ende
Dim MailDbName As String
Dim strSTime As String
Dim strETime As String
Dim CalenDoc As Object
Dim WorkSpace As Object
Dim ErrCnt As Integer
Dim Session As Object
Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")
MailDbName = ""
strSTime = CStr(FormatDateTime(StartTime, vbShortTime))
strETime = CStr(FormatDateTime(DateAdd("n", MinsDuration, StartTime), vbShortTime))
Set CalenDoc = WorkSpace.COMPOSEDOCUMENT(ServerName, MailDbName, "Appointment")
CalenDoc.FIELDSETTEXT "AppointmentType", AppointmentType
CalenDoc.Refresh
Do Until (CDate(Right(CalenDoc.fieldgettext("StartDate"), 10)) = CDate(AppDate)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "StartDate", CStr(FormatDateTime(AppDate, vbShortDate))
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
ErrCnt = 0
Do Until (CDate(CalenDoc.fieldgettext("StartTime")) = CDate(strSTime)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "StartTime", strSTime
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
ErrCnt = 0
Do Until (CDate(Right(CalenDoc.fieldgettext("EndDate"), 10)) = CDate(AppDate)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "EndDate", CStr(FormatDateTime(AppDate, vbShortDate))
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
ErrCnt = 0
Do Until (CDate(CalenDoc.fieldgettext("EndTime")) = CDate(strETime)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "EndTime", strETime
CalenDoc.Refresh
ErrCnt = ErrCnt + 1
Loop
CalenDoc.FIELDSETTEXT "Subject", Subject
CalenDoc.FIELDSETTEXT "Location", Location
CalenDoc.FIELDSETTEXT "Categories", Categories
CalenDoc.FIELDSETTEXT "Body", Body
CalenDoc.Refresh
CalenDoc.Save
CalenDoc.Close
Set CalenDoc = Nothing
Set WorkSpace = Nothing
ende:
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 159486
Url: https://administrator.de/contentid/159486
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
1 Kommentar
Hallo,
habe das gleiche Problem.
Dass Datum und die Zeit wird zuerst richtig übergeben, aber beim Automatisch speichern schreibt es dass aktuelle Datum rein...
Wenn man speichern ausklammert und dann "Speichern und Einladung senden" macht, funktionert es korrekt.
Auch wenn man den Code anhält und dann den Typ auf Jahrestag setzt geht es...
Kann jemand sagen wie man den Typ richtig übergibt?
Vielen Dank
und ein gutes neues Jahr
winu
habe das gleiche Problem.
Dass Datum und die Zeit wird zuerst richtig übergeben, aber beim Automatisch speichern schreibt es dass aktuelle Datum rein...
Wenn man speichern ausklammert und dann "Speichern und Einladung senden" macht, funktionert es korrekt.
Auch wenn man den Code anhält und dann den Typ auf Jahrestag setzt geht es...
Kann jemand sagen wie man den Typ richtig übergibt?
Vielen Dank
und ein gutes neues Jahr
winu