View Single Post
  #3  
Old April 13th 06, 04:20 PM posted to microsoft.public.outlook.program_vba
KeithXP
external usenet poster
 
Posts: 3
Default Problem with setting Outlook item userproperties

Thanks for this, but as I understand it, the user properties do exist
already.

If I open any item in the folder, go to the 'All Fields' tab, my
'userproperties' are all listed under 'User-defined fields in this item'.
The are also listed under 'User-defined fields in folder'.

Keith


"Ken Slovak - [MVP - Outlook]" wrote in message
...
If those user properties don't already exist you first must add them to
the UserProperties collection:

Dim oProp As Outlook.UserProperty
Dim colProps As Outlook.UserProperties

Set colProps = objItem.UserProperties
Set oProp = colProps.Add("Hotels", olText, True)
oProp.Value = objItem.User1

etc.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"KeithXP" wrote in message
.. .
I am trying to use the following code (downloaded from OutlookCode.com and
modified to suit my requirements) to move information from the built in
User
fields to custom property fields. I have only altered the name of the
form
to be used and the names of the custom fields.

On running the code I get:
Run-time error '-13179289555 (b1720005)':
Method 'UserProperties' of object 'ContactItem' failed

I am pretty inexperienced in VBA in general so haven't a clue what the
problem is. I did try the syntax

objItem.UserProperties("Hotels").value = objItem.User1

but received a similar error.

Any ideas?

thanks

Keith

----------------------------------------------------------------------------------

Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object

Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.PRList"
' copy data to your custom fields
objItem.UserProperties("Hotels") = objItem.User1
objItem.UserProperties("Residential") = objItem.User2
objItem.UserProperties("Prop. Dev.") = objItem.User3
objItem.UserProperties("Gardens") = objItem.User4
objItem.UserProperties("Projects") = objItem.Department
'comment out following lines until code is working
'objItem.User1 = ""
'objItem.User2 = ""
'objItem.User3 = ""
'objItem.User4 = ""
objItem.Save
End If
Next
End If

Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing

End Sub






Ads