Domino 9 und frühere Versionen > ND6: Entwicklung

Lotus Notes Attachment vs Embedded Object

(1/2) > >>

M1N3773:
Hi

I have a problem I've been struggling with for ages. I have some code for sending an Excel file (from Excel VBA) via Lotus Notes, however, I need the file to be sent as an attachment, but it keeps sending it as an embedded object. I have looked at what feels like hundreds of forums, but I just cannot find an answer!!

Someone tested the code this morning and with the code unmodified, it came through as an attachment!!! So it worked, but I'm still no closer to an answer. At least it looks like it's not a code issue, but more like a version or settings issue. I am unable to find out the version of Lotus Notes that was used to send the test email. I am using version 6.0.2 CF2 on Windows XP.

Do you have any clues about how I could resolve this please? My current vba code below:


Sub SendEmail()
Dim objMailDB As Object
Dim objMailDoc As Object
Dim objSession As Object
Dim objMailRTF As Object
Dim objAttach As Object
DDMMYY = Format(Now, "DDMMYY")
ChDirNet ActiveWorkbook.Path
namefile = ActiveWorkbook.Path & "\WPR_BANG_WC_" & DDMMYY & "_NUD_DISP.xls"

Dim recip(2) As Variant
recip(0) = "clmsra@nn.co.uk"
recip(1) = "m.c@nn.co.uk"

Set objSession = CreateObject("Notes.NotesSession")
Set objMailDB = objSession.GETDATABASE("", "")

If objMailDB.IsOpen = True Then
Else: objMailDB.OPENMAIL
End If

Set objMailDoc = objMailDB.CREATEDOCUMENT
With objMailDoc
.Form = "Memo"
.SendTo = "clmsra@nn.co.uk"
.Subject = "Weekly Performance Reports - " & DDMMYY
.Body = "Please find this week's WPR." & Chr(13) & _
"" & Chr(13) & _
"Thanks"
.SAVEMESSAGEONSEND = True
End With

Set objMailRTF = objMailDoc.CREATERICHTEXTITEM("Attachment")
Set objAttach = objMailRTF.EMBEDOBJECT(1454, "", namefile, "Attachment")
With objMailDoc
.PostedDate = Now()
.SEND 0, recip
End With

Set objMailDB = Nothing
Set objMailDoc = Nothing
Set objSession = Nothing
Set objMailRTF = Nothing
Set objAttach = Nothing
End Sub

flaite:
Hi,

this is odd.
It may be due to a bug in the specific notes version you are using.
You retrieve information about the version with the NotesVersion property of your NotesSession.
objSession.NotesVersion.

Why didn't you declare your objects with the proper classes?
Dim objMailDB as NotesDatabase
Dim objMailDoc as NotesDcoument
etc.

Its better to use

--- Code: ---Set objAttach = objMailRTF.EMBEDOBJECT(NotesRichTextItem.EMBED_ATTACHMENT, "", namefile, "Attachment")

--- Ende Code ---
instead of

--- Code: ---Set objAttach = objMailRTF.EMBEDOBJECT(1454, "", namefile, "Attachment") ' Magic number.

--- Ende Code ---


regards

Axel

koehlerbv:

--- Zitat von: Axel Janssen am 07.01.08 - 16:14:19 ---
--- Code: ---Set objAttach = objMailRTF.EMBEDOBJECT(NotesRichTextItem.EMBED_ATTACHMENT, "", namefile, "Attachment")

--- Ende Code ---

--- Ende Zitat ---

No, you can't use such a construct: NotesRichTextItem.EmbedObject expects a constant of type integer as the first parameter. You can't replace it with a method of the class NotesRichtextItem.

Nevertheless, I can't see any reason in this code why instead of the desired attachments an embedded object is created. Sorry.

Bernhard

m3:
Maybe the problem does is not in the code but in the environment?
How do you execute this code? A time-triggered agent on the server, a button in the Notes Client, ...?

koehlerbv:
Martin - this is code inside an Excel sheet ...

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln