Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Alperen15 am 01.03.11 - 13:49:30
-
Hallo alle zusammen. Ich habe hier eine Schaltfläche die ne mail verschicken soll, wenn man die Schaltfläche betätigt...allerdings habe ich eine Fehlermeldung "Object varialbe not set" an der Fett markierten Stelle. Ich habe doch doc definiert. Würde mich sehr freuen wenn Ihr mir sagen würdet was genau da falsch ist.
Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim names As NotesDatabase
Dim namesdoc As NotesDocument
Dim ProfilDoc As NotesDocument
Dim uid As String
Dim namespath As Variant
Dim email As NotesDocument
Dim rtitem As NotesRichTextItem
Set db = session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
If doc.fdNeuVerantwortlicher = "" Then
'email versenden
Set email = New NotesDocument(db)
email.Form = "Memo"
email.Subject = "Ein neuer Verbesserungsvorschlag ist eingetroffen"
Set rtitem = New NotesRichTextItem( email, "Body" )
Call rtitem.AppendText( "Umsetzung des Vorschlags wurde durch den LAS freigegeben. Link zum Dokument --> " )
Call rtitem.AppendDocLink(doc, "link to document" )
Call email.Send( False, doc.fdVerantwortlicher)
Msgbox("Verantwortlicher wird informiert")
Else
'email versenden
Set email = New NotesDocument(db)
email.Form = "Memo"
email.Subject = "Ein neuer Verbesserungsvorschlag ist eingetroffen"
Set rtitem = New NotesRichTextItem( email, "Body" )
Call rtitem.AppendText( "Umsetzung des Vorschlags wurde durch den LAS freigegeben. Link zum Dokument -->" )
Call rtitem.AppendDocLink(doc, "link to document" )
Call email.Send( False, doc.fdNeuVerantwortlicher)
Msgbox("Verantwortlicher wird informiert")
End If
doc.fdYesNo4 = "Yes"
doc.fdNameYes4= session.CommonUserName
doc.fdDatumYes4 = Now
'doc speichern
Call uidoc.Refresh
Call doc.Save(True, False)
End Sub
-
If doc.fdNeuVerantwortlicher(0) = "" Then
-
Das ergibt aber einen Type mismatch statt "Object variable not set".
Bernhard
-
Danke oxyd21, jep Bernahrd hast recht :)
-
Das hattest Du nicht gefragt, bekommst aber trotzdem eine Antwort: Du schreibst viel Script doppelt. Dabei unterscheiden sich die beiden Mails nur darin, aus welchem Feld der Empfänger gezogen wird. Dein Code wird dadurch schwerer les- und wartbar. Versuche, alles nur einmal zu schreiben.
sinngemäß:
Dim verantwortlicher As Variant
If doc.fdNeuVerantwortlicher (0) = "" Then
verantwortlicher = doc.fdNeuVerantwortlicher
Else
verantwortlicher = doc.fdVerantwortlicher
End If
'email versenden
....
Call email.Send( False, verantwortlicher)
....
Natürlich gibt es noch viele andere Möglichkeiten, das zu schreiben, aber vermeide Doppeltes !
-
Peter hat Recht ...
Und ganz Verwegene machen für sowas sogar schon mal ne eigene function
-
Noch übler ist, dass "Alperen" immer nur Code findet, der keinen ErrorHandler hat ;)
Bernhard