Problem with setting Outlook item userproperties

K

KeithXP

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
 
K

Ken Slovak - [MVP - Outlook]

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.
 
K

KeithXP

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
 
K

KeithXP

Ken -
Could this be a data type problem? I imported the contacts from Excel and
the information in the User1-4 fields is logical (stored as Yes/No).

I have created the new userproperty fields as Yes/No type, format Yes/No.
Could there be a problem transferring the data from the User1 field (string)
to the "Hotels" field (Yes/No)?

If so, any idea how to get around it...

thanks
 
K

Ken Slovak - [MVP - Outlook]

If strValue = "Yes" Then
blnValue = True
Else
blnValue = False
End If

oProp.Value = blnValue
 

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