Moving a Custom Form from folder to folder in Outlook 2007

K

koops2121

I have a task form that I move from folder to folder in Outlook public
folders.
Basically when you save and close it should move to the folder above it.
This worked fine before with Outlook 2000/2003. Using the code:

Sub Item_Close
oTask.Move oFolder
End Sub

Now in 2007 it doesn't do anything.
I've also tried changing it so that it copies the form, then moves the copy:

Sub Item_Close
Set ocTask = oTask.Copy
ocTask.Move oFolder
End Sub

This creates the new task, however none of the custom fields come over with
it for whatever reason.

Does anyone have any suggestions?
Thanks,
 
S

Sue Mosher [MVP-Outlook]

What do you actually see on the new task? Where is your form published? To work in this scenario, it needs to be published either to Organizational Forms, to Personal Forms, or to the forms library on each folder where items are stored. Also, you may need to create the custom fields in the target folder, if you want them to be displayed there in folder views.

Note that you are moving an item, not a form. A form is the code/UI template. It is the item that contains the data that the form displays.
 
K

koops2121

My form is published to each of the public folders. It's published with the
message class "Base", then it gets moved to the next folder as "Quoted".
When copied it appears fine, however none of the user defined fields are
populated. It does however copy stuff like Subject and Due Date. So both in
the listing and viewing the item user defined fields are null.
I checked the "user-defined fields in this folder" and CompanyName is in
there however it appears blank when copied.
 
S

Sue Mosher [MVP-Outlook]

then it gets moved to the next folder as "Quoted".

Could you explain what you mean by that, please? A code snippet might be instructive.
 
K

koops2121 via OfficeKB.com

Function Item_Close()

If MoveQuoted = 1 Then
Set oApp = CreateObject("Outlook.Application")
Set oName = oApp.GetNamespace("MAPI")
Set oFolder = Item.Parent

If oFolder.EntryID =
"000000001A447390AA6611CD9BC800AA002FC45A0300D27A6408BFB611469494C39DB2EE" &
_
"75A7000000096E430000" Then
Set oFolder = oName.Folders.Item("Public Folders").Folders.Item("All
Public
Folders").Folders.Item("Procurement").Folders.Item("Calgary")
Set oFolder2 = oName.Folders.Item("Public Folders").Folders.Item("All
Public
Folders").Folders.Item("Procurement").Folders.Item("Calgary").Folders.
Item("Quoted")
Set oTask = oName.GetItemFromID(Item.EntryID)
oTask.Close(0)
oTask.Move oFolder2
End If

Set oFolder = Nothing
Set oFolder2 = Nothing
Set oName = Nothing
Set oApp = Nothing

End If
End Function
 
S

Sue Mosher [MVP-Outlook]

So you're trying to sneak around the limitation against calling Move inside the Close event handler (documented at http://outlookcode.com/article.aspx?id=59)?

I can't explain why the moved item would be missing data in a custom field. Do you see the same behavior if you move the item manually? What happens if you delete that field from the folder's User-defined Fields and then add it again. (This will not affect any data if you do it at the folder level.)
 
K

koops2121 via OfficeKB.com

You got it! Lol.
When I move the item it moves normally and all the fields are filled in.
However I'm unsure if it's a one-off form that gets created or not.

I tried deleting the user-defined fields in the folder remade them with no
success.

Is what I'm doing unheard of? Does no one else programmatically move items
from folder to folder? If so how do they do it?
 
S

Sue Mosher [MVP-Outlook]

It's moving a custom form item inside the Close event that's a no-no.

You can see easily if it's a one-off by comparing the values of the Size and MessageClass properties with those of a custom form item moved manually.

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


koops2121 via OfficeKB.com said:
You got it! Lol.
When I move the item it moves normally and all the fields are filled in.
However I'm unsure if it's a one-off form that gets created or not.

I tried deleting the user-defined fields in the folder remade them with no
success.

Is what I'm doing unheard of? Does no one else programmatically move items
from folder to folder? If so how do they do it?

So you're trying to sneak around the limitation against calling Move inside the Close event handler (documented at http://outlookcode.com/article.aspx?id=59)?

I can't explain why the moved item would be missing data in a custom field. Do you see the same behavior if you move the item manually? What happens if you delete that field from the folder's User-defined Fields and then add it again. (This will not affect any data if you do it at the folder level.)
 

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

Top