Outlook staying in memory

  • Thread starter Thread starter Rod
  • Start date Start date
R

Rod

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 "
OBmailItem.Send

Call MsgBox("Wait")

olNs.Logoff

olApp.Quit

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

End Sub
 
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
events
Dim blnFinished As Boolean

When you call send you then use this:

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

While blnFinished = False
DoEvents
Loop

Your handler would look like this:

Private Sub synch_SyncEnd()
blnFinished = True
End Sub
 
Back
Top