Autor Thema: Mailsend button  (Gelesen 3446 mal)

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Mailsend button
« 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

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Re: Mailsend button
« Antwort #1 am: 01.03.11 - 13:53:27 »
If doc.fdNeuVerantwortlicher(0) = "" Then

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Mailsend button
« Antwort #2 am: 01.03.11 - 13:59:07 »
Das ergibt aber einen Type mismatch statt "Object variable not set".

Bernhard

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Mailsend button
« Antwort #3 am: 01.03.11 - 14:04:33 »
Danke oxyd21, jep Bernahrd hast recht  :)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Mailsend button
« Antwort #4 am: 01.03.11 - 14:10:07 »
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 !

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: Mailsend button
« Antwort #5 am: 01.03.11 - 14:11:22 »
Peter hat Recht ...

Und ganz Verwegene machen für sowas sogar schon mal ne eigene function
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Mailsend button
« Antwort #6 am: 01.03.11 - 14:14:12 »
Noch übler ist, dass "Alperen" immer nur Code findet, der keinen ErrorHandler hat  ;)

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz