Object variable not set error in HTML email button

Posted on 2009-05-12
Last Modified: 2013-11-16
HTML memo button works on Notes 8 client and does not work for some Notes 7 clients with error message: "Object variable not set".  
What would cause this error ?
Sub Click(Source As Button)


	'1st email note serves as confirmation, rsvp

	Dim session As New NotesSession

	Dim db As NotesDatabase

	Dim doc As NotesDocument

	Set db = session.CurrentDatabase

	Set doc = New NotesDocument( db )

	doc.Form = "Memo"

	doc.SendTo = ""    'CHANGE SEND TO HERE

	doc.Subject = "This is my subject line"  'CHANGE SUBJECT LINE HERE

	doc.body = "Notification - I clicked this button and will attend' "   'CHANGE BODY TEXT HERE

	Call doc.Send( False )

	'End of 1st email noe



	'2nd Email note - Allow user to Compose HTML Memo 


	Dim memo As NotesuiDocument

	Dim html As Variant


	' Add the Email Body Text between the  beginning and Ending Vertical Bar:  |

	' <br> (break - new line)

	' <b> bold text </b>

	' <font size=4> text - make any size you like  </font>

	' url has to be enclosed in single quote:  <img src=''/>

	' another example:   <a href =''>Click here to get the white paper.</a>


	html = |    

<img src=''/>

 <br><font size=6><b>This is my first line for body text.

	</font></b><br><br>More body text

And more body text.	

	Here is example of font size:

	<br><br><font size=4><b>Font 4 text.</font></b>is a little larger.

	<br><br><font size=4><b><a href =''''>Click here to get the white paper and more information.</a>

	<br><br><font size = 1>copyright

	<br><br><br>  |




	Set memo = ComposeMimeMemoEx(Body ,html )  

	Call memo.FieldSetText("Subject", "xyz white paper:  and more information" ) ' Add Subject text in quotes

'	Call memo.FieldSetText("EnterSendTo", "")	  'If needed, add intranet id BETWEEN quotes for the SendTo field 	and remove the ' Comment single quote



End Sub

Function ComposeMimeMemoEx(Byval subject As String, Byval html As String) As NotesUIDocument


	Dim ws As New NotesUIWorkspace

	Dim sess As New NotesSession

	Dim db As New NotesDatabase("", "")

	Dim uiTemp As NotesUIDocument, memo As NotesUiDocument

	Dim docTemp As NotesDocument

	Dim body As NotesMimeEntity

	Dim stream As NotesStream

	On Error Goto CATCH



        ' create MIME using a temp document

	Call db.OpenMail

	sess.ConvertMime = False

	Set docTemp = db.CreateDocument

	Set body = docTemp.CreateMIMEEntity("Body")

	Set stream = sess.CreateStream

	Call stream.WriteText(html)

	Call body.SetContentFromText(stream, {text/html; charset="iso-8859-1"}, ENC_QUOTED_PRINTABLE)

	Call docTemp.CloseMIMEEntities(True, "Body")

	sess.ConvertMime = True

	Call docTemp.Save(True, False)


        ' copy generated HTML to the clipboard

	Set uiTemp = ws.EditDocument(True, docTemp)

	Call uiTemp.GotoField("Body")

	Call uiTemp.SelectAll

	Call uiTemp.Copy

	uiTemp.Document.SaveOptions = "0"

	uiTemp.Document.MailOptions = "0"

	Call uiTemp.Close

	Call docTemp.Remove(True)

	Set docTemp = Nothing


        ' compose the new memo

	Set memo = ws.ComposeDocument(db.Server, db.Filepath, "Memo")

	Call memo.FieldSetText("Subject", subject)

	Call memo.GotoField("Body")

	Call memo.Paste


	Set ComposeMimeMemoEx = memo


	Exit Function



	If (Not docTemp Is Nothing) Then If (Not docTemp.IsNewNote) Then Call docTemp.Remove(True)

	Exit Function


End Function

Open in new window

Question by:KTTKTT
  • 2
  • 2
LVL 63

Expert Comment

ID: 24374833
IS it version specific  in 7 ?

Have you run it in debug mode ?

How about adding debug output to a log ?

I hope this helps !

Author Comment

ID: 24375215
V7.2   My machine hangs when attempting to run debug, but it generally stalls at :
Set memo = ComposeMimeMemoEx(Body ,html )  

How do I debut output to a log?
LVL 63

Expert Comment

ID: 24377224
I would check to make sure that the body and HTML exist .

also shouldn't it be

Set memo = ComposeMimeMemoEx(doc.Body ,html )  or doc.subject in the first param.

I hope this helps !

Accepted Solution

KTTKTT earned 0 total points
ID: 25188406
I've had other programmers review code - they ran it w/out problems.  Still don't know why it works for version 8 Notes and not version 7.  Hoping everyone will upgrade soon. Closing request.  Thanks for your assistance.

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Lotus notes - forward mails agent with these conditions in subject, 3 220
Lotus Domino server 11 62
lotus notes, exchange 7 109
Email Forward: Get Around Relay Issue 3 110
  In today’s Arena we can’t imagine our lives without Internet as we are highly used to of it. If we consider our life style just for only 2 min we found that face to face communication is swapped by e-communication.  Every Where from Works place to…
This article covers general Notes 8.5 troubleshooting information including recreating the Notes\Data folder.
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now