Outlook staying in memory



I am running a VBA program in Access to send emails. The email is sent OK
but Outlook stays in memory.
In the code below I have put in a message box to slow the code down. If this
is there then Outlook correctly closes itself down.
Because it is not closed it creates problems the next time I call the code,
even if it is modified to pick up an already open version of outlook.

I am using Office 2002 on a Vista machine with several cpus

Any suggestions please

many thanks


Public Sub Create_eMails()

Dim olApp As New Outlook.Application
Dim olNs As Outlook.NameSpace
Dim OBmailItem As Outlook.MailItem

Set olApp = New Outlook.Application

Set olNs = olApp.GetNamespace("MAPI")
olNs.Logon ""

Set OBmailItem = olApp.CreateItem(olMailItem)

OBmailItem.To = "(e-mail address removed)"

OBmailItem.Subject = "Test Email. "
OBmailItem.Body = "Test Body Text "

Call MsgBox("Wait")



Set OBmailItem = Nothing
Set olNs = Nothing
Set olApp = Nothing

End Sub

Ken Slovak - [MVP - Outlook]

You need to allow time for the send operation to finish. You can try using a
DoEvents() call, but I don't think that will do it. Best thing to do
probably is to start a Send/Receive operation and wait for that to finish.
If you get a handle to SyncObjects(1) and call that SyncObject's Start()
method with an event handler for SyncEnd that should do it:

Dim WithEvents synch As Outlook.SyncObject ' in a class that can handle
Dim blnFinished As Boolean

When you call send you then use this:

blnFinished = False
Set synch = olNS.SyncObjects.Item(1)

While blnFinished = False

Your handler would look like this:

Private Sub synch_SyncEnd()
blnFinished = True
End Sub

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question