Lotus Notes email und Excel, Problem mit Array

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Lotus Notes email und Excel, Problem mit Array von: iggnazio
Geschrieben am: 25.02.2005 10:16:51

Hallo Excel Jünger,

ich habe anhand des hilfreichen Archivs eine Prozedur zusammengestellt für den automatischen Versand von emails - so weit so gut. Nur die Erstellung eines Arrays um mehrere Empfänger zu adressieren klappt nicht... kann mir jemand mit dem Code helfen? Irgendwo hab ich wohl einen Fehler eingebaut. (übrigens, die abgespeicherte Email im Ausgang zeigt alle Empfänger korrekt an, nur kommt die Email nur beim ersten Empfänger an...)


Und noch einer: ich würde gern Verknüpfungen auf Lotus Notes Datenbanken und Dokumente legen.
Auch das klappt wenn ich in Notes "als Verknüpfung kopieren" und in Excel "Inhalte einfügen" wähle (als Verknüpfung und Symbol). Ein Doppelklick auf das Symbol zeigt dann auch das Dokument in Notes oder öffnet die Datenbank.
Jetzt die Frage: kann man diesen Link jedoch auch ohne ein Objekt einfügen. Ich hatte auf die Verknüpfung über einen Hyperlink gedacht... (hat aber bei einem Notes.link nicht geklappt... hat hier jemand Erfahrung???
Übrigens, das Objekt hat folgende Verknüpfung:
=Notes.Link|Notes.Link!'!45322000000...'


Und hier der VBA Code für die erste Frage. Vielen Dank schon mal für eure Hilfe!!

'---EMAIL VERSAND AUS EXCEL


Sub EmailSenden()
    Dim NutzerNotes As Object
    Dim Notes As Object
    Dim MailDokument As Object
    Dim TextInMail As String, Anhang As String
    Dim Text As Object
    Dim Receipient As Variant
    Dim beg As Integer, last As Integer
    Dim i As Byte
    Dim vari
    Dim var()
    Const EMBED_ATTACHMENT = 1454
    
'----- Auslesen des Arrays--------
    
    beg = 10
    last = Sheets("NOTES").Cells(100, 6).End(xlUp).Row
    If last < 11 Then last = 10
    vari = (last - beg) + 1 'anzahl der arrayeinträge ermitteln
    ReDim Preserve var(vari)
    Receipient = ""
    Dim x As Byte
    For x = beg To last
        var(x - 9) = Sheets("params").Cells(x, 6) ' array mit daten aus dem sheet füllen
    Next
    For i = 1 To last - beg
        Receipient = Receipient & var(i) & ","
    Next
        Receipient = Left(Receipient, Len(Receipient) - 1) ' letztes Komma entfernen
    
'---- Erstellen der eMail---------
    Set NutzerNotes = CreateObject("Notes.NotesSession")
    Set Notes = NutzerNotes.GetDatabase("", "")
    Call Notes.OPENMAIL
    Set MailDokument = Notes.CREATEDOCUMENT
    Call MailDokument.ReplaceItemValue("SendTo", Receipient)
    Call MailDokument.ReplaceItemValue("Subject", "" & Date)
    
    Set Text = MailDokument.CREATERICHTEXTITEM("Body")
    TextInMail = "Bitte beachten Sie das" & vbCrLf & vbCrLf & vbCrLf & vbCrLf
    Call Text.AppendText(TextInMail)
    
    MailDokument.SAVEMESSAGEONSEND = True
    Call MailDokument.SEND(False, Receipient)
    Set NutzerNotes = Nothing
End Sub

Bild


Betrifft: AW: Lotus Notes email und Excel, Problem mit Array von: Dominic
Geschrieben am: 25.02.2005 12:37:22

Hallo iggnazio,

Zu Frage1:
hab's nicht getestet aber im LN werden die Adressen mit ", " verbunden.

Gruß
Dominic

Ps.: Über Verlinkung muß ich noch nachdenken. Wenn Du aber nur Daten und keine vollständige Dokument brauchst, dann schau mal die Hilfe im Domino Designer Help an, wie OLE und COM ausschaut!


Bild


Betrifft: AW: Lotus Notes email und Excel, Problem mit Array von: iggnazio
Geschrieben am: 25.02.2005 13:31:58

Hi Dominik,
vielen Dank schon mal für deine Hilfe!

also das Komma wird schon eingefügt:

For i = 1 To last - beg
Receipient = Receipient & var(i) & ","
Next

bin mir aber nicht sicher ob ich 'receipient' wirklich als Array übergebe...!?

zum anderen Thema: ich hatte eigentlich an das Dokument gedacht. Wobei ich aber auch schon mal mit COM rumgebastelt hatte... mir ist es aber nie gelungen wirklich eine Datei abzurufen..


Bild


Betrifft: AW: Lotus Notes email und Excel, Problem mit Array von: Dominic
Geschrieben am: 25.02.2005 14:03:55

Hallo,

also probier mal mit:
Receipient = Receipient & var(i) & ", "


Ist der Datenbank web - basierend? Wenn ja, dann schau Dir mal GetDocumentByURL an.
Mit Datenpflege in Backend bin ich fit, und auch beim ActiveDocument, aber Verlinkung...
Gruß
Dominic


Bild


Betrifft: AW: Lotus Notes email und Excel, Problem mit Array von: iggnazio
Geschrieben am: 25.02.2005 19:52:15

Hi,
mit dem Leerzeichen hat leider auch nicht geklappt. Na ja, wenn's gar nicht klappt werde ich eine Schleife einbauen und jede email einzeln verschicken...

Hast du ein Beispiel wie man Daten aus einem Notes Dokument ausliest? Ich habe da mal folgende Zeilen kopiert, aber mit dll's kenn ich mich leider nicht aus und weiss nicht ob die angepasst werden müssen, daher klappte dieses Beispiel bei mir nicht...


Sub Notes_Telefonbuch_lesen()
' Zugriff auf Notes - Datenbanken mittels COM (Component Objekt Model) ab (Domino) Version 5.0.2b
' Verweis auf Lotus Domino Objects (domobj.tlb) unbedingt erforderlich
' Entsprechende dll findet sich unter..\notes\nlsxbe.dll
' Registrieren z.B. über Start --> Ausführen:  regsvr32 [pfad]\nlsxbe.dll
' Vorliegender code erstellt mittels "com together with domino redbook" - handbuch
'Dim DomSession As New NotesSession  'Session
Dim DomDir As NotesDatabase         'Datenbank
Dim DomView As NotesView            'Ansicht
Dim DomDoc As NotesDocument         'Dokument
Dim StrName As String
Dim i As Long
' zur Fehlerbehandlung
Dim StrTestDomSession As String
On Error GoTo ErrorHandler
' zum Testen ob die Notessession schon steht, wenn nicht-
' initialisiert der Errorhandler die Session (Passwortabfrage)
StrTestDomSession = DomSession.CommonUserName
Set DomDir = DomSession.GetDatabase("SERVER", "PFAD+DATENBANKNAME")
Set DomView = DomDir.GetView("ANSICHT")
Set DomDoc = DomView.GetFirstDocument
i = 1
While Not (DomDoc Is Nothing)
    ' Felder auslesen - Parameter "(0)" unbedingt erforderlich !
    ' bei meinen drei Beispieldatenfeldern handelt sich es um Telefonbuch- Felder
    StrName = DomDoc.GetItemValue("lastname")(0) & " " _
            & DomDoc.GetItemValue("firstname")(0) & " " _
            & DomDoc.GetItemValue("shortname")(0)
    ' nächstes Dokument
    Set DomDoc = DomView.GetNextDocument(DomDoc)
    
    MsgBox StrName, vbInformation, "Datensatz Nr. " & i
    i = i + 1
    
Wend
GoTo done
ErrorHandler:
If Err = ERR_NOTES_SESSION_NOT_INIT Then
    DomSession.Initialize
    Resume Next
Else
    MsgBox "Laufzeitfehler Nr. " & Err & vbLf & Err.Description, vbCritical
End If
done:
End Sub



 Bild

Beiträge aus den Excel-Beispielen zum Thema "Lotus Notes email und Excel, Problem mit Array"