View Single Post
  #2  
Old July 22nd 09, 11:48 AM posted to microsoft.public.outlook.program_vba
Alan Moseley
external usenet poster
 
Posts: 61
Default Move email using the Close event

You are creating a separate process for your myApp object, which you don't
need and will cause problems. Your code doesn't actaully use the myApp
object anywhere so you don't need any of them, but if other areas of your
code do make use of them then change :-

Dim myApp As New Outlook.Application
to
Dim myApp As Outlook.Application

next change

Set myApp = CreateObject("Outlook.Application")
to
set myApp = Outlook

Lastly change

Set objNS = GetNamespace("MAPI")
to
Set objNS = Outlook.GetNamespace("MAPI")
or
Set objNS = myApp.GetNamespace("MAPI")

Does this prevent the problem?

--
Alan Moseley IT Consultancy
http://www.amitc.co.uk

If I have solved your problem, please click Yes below. Thanks.


"Vasil Vasilev" wrote:

Hi,

I made a custom form in Outlook 2003, which I assign to email messages in a
certain subfolder of my inbox. Using this form, additional attributes can be
assigned to the email. The user must open the mail, make the assignment, save
it, and close it.
At this point I want to move this email to another folder. I'm using the
Close event, but I can't make it work...
I always get runtime error '-1040973560' (c1f40108)

Am I missing something?

Here my code:

Code:
 Public WithEvents myItem As Outlook.MailItem
 Dim myApp As New Outlook.Application
 
 
 Private Sub Application_Startup()
        Set myApp = CreateObject("Outlook.Application")
        Set myItem = myApp.ActiveInspector.CurrentItem
        ......
 End Sub
 
 
 Private Sub myItem_Close(Cancel As Boolean)
 
     Dim objNS As Outlook.NameSpace
     Set objNS = GetNamespace("MAPI")
     
     Dim destFolder As Object  'Outlook.MAPIFolder
     Set destFolder = 
 objNS.GetDefaultFolder(olFolderInbox).Folders("Processed")
     
     
     Set myItem = Application.ActiveInspector.CurrentItem
     
     If Not (myItem.MessageClass = "IPM.Note.PDV_Nachricht_de" Or _
               myItem.MessageClass = "IPM.Note.PDVA_Nachricht_de" ) Then
        MsgBox " Nothing happens"
     Else
             myItem.Move destFolder
     End If
     
 End Sub

P.S. I also tried to create a temporary mail item, make it equal to the
current mail item, move this one and delete the current... but still no luck

Ads