Public Sub SendNotesAppointment(VornameX As String, NachnameX As String, _
WDatumX As Variant, SubjectX As Variant)
'*****************************************************************************
'*
'* Mit dieser Funktion werden Termine aus in den
'* Lotus Notes Kalender des Anwenders geschrieben.
'*
'*****************************************************************************
'Set up the objects required for Automation into lotus notes
Dim Maildb As Object 'The mail database
Dim MailDbName As String 'The persons notes mail database name
Dim CalenDoc As Object 'The calendar entry itself
Dim WorkSpace As Object
Dim Subject As String 'The Headline
Dim Appdate As String 'The calendardate
Subject = SubjectX 'Vorlauftext
Subject = Subject & VornameX & " " 'Vorname holen
Subject = Subject & NachnameX 'Nachname holen
Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")
Set CalenDoc = WorkSpace.COMPOSEDOCUMENT("", "", "Appointment")
CalenDoc.FIELDSETTEXT "AppointmentType", "4"
'AppointmentType 1 = Jahrestag
'AppointmentType 2 = Ganztägige Veranstaltung
'AppointmentType 3 = Beprechung
'AppointmentType 4 = Erinnerung
CalenDoc.FIELDSETTEXT "StartDate", CStr(Format(WDatumX, "dd/mm/yy"))
CalenDoc.FIELDSETTEXT "startTime", CStr("09:00:00")
'CalenDoc.FIELDSETTEXT "Duration", CStr(Duration)
CalenDoc.FIELDSETTEXT "Subject", Subject
CalenDoc.FIELDSETTEXT "Body", Subject
CalenDoc.FIELDSETTEXT "Categories", "PC" 'PC = Anrufe
CalenDoc.Save False, False, False
CalenDoc.Close
Set Maildb = Nothing
Set CalenDoc = Nothing
Set WorkSpace = Nothing
MsgBox "Der Wiedervorlagetermin ist in Notes übertragen worden"
End Sub
ggf. bin ich auch bereit eine gewerbliche Lösung zu akzeptieren
die im FrontEnd des Notes Clients Kalendereinträge macht (und das in keinster Weise sauber - da fehlen ganz wichtige Sachen für das Notes C&S).was für wichtige Sachen ?
wer könnte uns denn dabei unterstützen solche Scripte für Access zu erstellen
was wir uns vorstellen habe ich ja schon mitgeteilt,
nur für Kalendereintrag und/oder ToDo
Option Compare Database
Option Explicit
'Lotus Notes Calendaring
'Developed by Joe Korzeniewski of www.vortexwd.net
'For an explanation of this code please visit www.vortexwd.net/Lotusnotescalendaring1.asp
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
'Set up the objects required for Automation into lotus notes
Dim MailDbName As String 'The persons notes mail database name
Dim strSTime As String
Dim strETime As String
Dim CalenDoc As Object 'The calendar entry itself
Dim WorkSpace As Object
Dim ErrCnt As Integer
Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")
'Change this to fit your particular db naming convention based on UserName if necessary
'MailDbName = "mail\" + UserName + ".nsf"
'Get the engineer username and then calculate the mail file name
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " ")))
MailDbName = "mail\" & Left$(MailDbName, 8) & ".nsf"
strSTime = CStr(FormatDateTime(StartTime, vbShortTime))
strETime = CStr(FormatDateTime(DateAdd("n", MinsDuration, StartTime), vbShortTime))
'MAKE SURE TO SET SERVER NAME BELOW
Set CalenDoc = WorkSpace.COMPOSEDOCUMENT(ServerName, MailDbName, "Appointment")
CalenDoc.FIELDSETTEXT "AppointmentType", AppointmentType '"3" '0=Appointment, 1=Anniversary, 2=AllDayEvent, 3=Meeting, 4=Reminder
CalenDoc.Refresh
'Each loop is used to write the value to the field until the field is changed to that value
Do Until (CDate(Right(CalenDoc.fieldgettext("StartDate"), 10)) = CDate(AppDate)) Or ErrCnt = 1000
CalenDoc.FIELDSETTEXT "StartDate", CStr(FormatDateTime(AppDate, vbShortDate))
CalenDoc.Refresh
'ErrCnt is used to prevent an endless loop
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 & " / Betreff: " & Body 'weil ich Body nicht in den Body bekomme
CalenDoc.FIELDSETTEXT "Location", Location
CalenDoc.FIELDSETTEXT "Body", Body 'erscheint nur wird aber nicht übernommen
CalenDoc.FIELDSETTEXT "Categories", Categories
CalenDoc.Refresh
' CalenDoc.Save 'dadurch wird der Eintrag sofort gespeichert
' CalenDoc.Close 'dadurch wird der Eintrag sofort gesendet
Set CalenDoc = Nothing
Set WorkSpace = Nothing
MsgBox "Ein neuer Eintrag wurde in Lotus Notes geöffnet, bitte überprüfen Sie Ihr Lotus und speichern Sie den Eintrag"
ende:
End Sub
CalenDoc.FIELDSETTEXT "Body", Body
Gregor: Du willst Dir das IBM Lotus Notes Calendaring & Scheduling Schema (http://www.lotus.com/ldd/notesua.nsf/find/wpnotescsschema) durchlesen und dann entsprechend programmieren, damit die Anwendung C&S konform wird.Danke
Dass das mit dem Item "Body" nicht klappt (weil RTIs anders belegt werden müssen),...wie ist das zu verstehen, wie anders belegen ?
Hast Du einen installierten Notes Designer Client mitsamt der Datenbank help_designerXX.nsf?...