Domino 9 und frühere Versionen > ND6: Entwicklung
Microsoft Access an Lotus Notes Calendar
GregorJ:
Hallo,
ich habe nun folgende Lösung gefunden:
Lotus Notes Appointments from VB or VBA (version 6)
nach dem Code von
Lotus Notes Calendaring von Joe Korzeniewski
Nach einigen Anpassungen sieht das nun so aus:
--- Code: ---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
--- Ende Code ---
ein Problem habe ich noch damit,
wenn ich
--- Code: ---CalenDoc.FIELDSETTEXT "Body", Body
--- Ende Code ---
überneme,
erscheint der Text zwar im neuen Eintrag in Lotus Notes aber ist dort hellgrau und wenn ich in das Feld klicke,
verschwindet der Text
ich habe mal eine Musterdatei gemacht
LotusCalendarEntry.zip
Gregor
koehlerbv:
Dass das mit dem Item "Body" nicht klappt (weil RTIs anders belegt werden müssen), ist Euer geringstes Problem. Den Code, den Du da gefunden hast, ist absolut Domino C&S-inkonform.
Lies bitte nochmal mein Posting #7 in diesem Thread ...
Bernhard
GregorJ:
und was ist mit der Methode REPLACEITEMVALUE
die von Joe Korzeniewski dort dargestellt wird,
ist das C&S konform ?
dabei funktioniert auch der Eintrag im Body
Gregor
m3:
Gregor: Du willst Dir das IBM Lotus Notes Calendaring & Scheduling Schema durchlesen und dann entsprechend programmieren, damit die Anwendung C&S konform wird.
GregorJ:
--- Zitat von: m3 am 24.02.07 - 10:28:03 ---Gregor: Du willst Dir das IBM Lotus Notes Calendaring & Scheduling Schema durchlesen und dann entsprechend programmieren, damit die Anwendung C&S konform wird.
--- Ende Zitat ---
Danke
ich sehe darin zunächst ein Problem das ich den Body als String übergebe und nicht als RTF
in der Methode REPLACEITEMVALUE wird, wenn ich das richtig erkannt habe, ein Objekt in
Lotus Notes erzeugt und überschrieben, das gefällt mir gar nicht.
--- Zitat von: koehlerbv am 24.02.07 - 01:19:03 ---Dass das mit dem Item "Body" nicht klappt (weil RTIs anders belegt werden müssen),...
--- Ende Zitat ---
wie ist das zu verstehen, wie anders belegen ?
Gregor
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln