[vba newbie] With a user-defined field, impossible to fill it

A

Anthony F.

Hello,


working on access 2002 to outlook 2002, I try to create
(from Access) a user-defined field.

The creation seems to work.

But I can't fill this new user-defined field
as it remains empty for all my contacts.
(even though I fill it programmaticaly)

I work in the Contact default folder.


Thank you
Anthony
 
A

Anthony F.

here is the code
------------------------------------------
Sub exportAccessContactsToOutlook()


' set up DAO Objects.
Dim db As DAO.Database
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Req Transfert Outlook")

' set up Outlook Objects.
Dim olookApp As New Outlook.Application
Dim olookSpace As Outlook.NameSpace
Dim olookFolder As Outlook.MAPIFolder
Dim olookContact As Outlook.ContactItem
Dim olookUserProp As Outlook.UserProperty
Dim colItems As Items

Set olookSpace = olookApp.GetNamespace("MAPI")
Set olookFolder = olookSpace.GetDefaultFolder(olFolderContacts)
Set colItems =
olookApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items

rst.MoveFirst

' loop through the Microsoft Access records.
Do Until rst.EOF
With colItems.Add
Set olookContact =
olookApp.CreateItem(olContactItem)

olookContact.MessageClass = "IPM.Contact"
Set olookUserProp =
olookContact.UserProperties.Add("CodeContactInOutlook", olNumber)

olookUserProp = rst![Code Contact] 'name
in the Access table

.Save
End With
rst.MoveNext
Loop

rst.Close
' clean up


'db.Close
'Set db = Nothing

End Sub
 
S

Sue Mosher [MVP-Outlook]

You're using With ... End With very strangely. Try this cleaner alternative:

Set olookContact = olookApp.CreateItem(olContactItem)
With olookContact
Set olookUserProp = _
.UserProperties.Add("CodeContactInOutlook", olNumber)
olookUserProp.Value = rst![Code Contact]
.Save
End With

--
Sue Mosher, Outlook MVP
Author of
Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx


With colItems.Add
Set olookContact =
olookApp.CreateItem(olContactItem)

olookContact.MessageClass = "IPM.Contact"
Set olookUserProp =
olookContact.UserProperties.Add("CodeContactInOutlook", olNumber)

olookUserProp = rst![Code Contact] 'name
in the Access table

.Save
End With


try:

olookUserProp.value = rst![Code Contact]

--
Sue Mosher, Outlook MVP
Author of
Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx


Anthony F. said:
here is the code
------------------------------------------
Sub exportAccessContactsToOutlook()


' set up DAO Objects.
Dim db As DAO.Database
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Req Transfert Outlook")

' set up Outlook Objects.
Dim olookApp As New Outlook.Application
Dim olookSpace As Outlook.NameSpace
Dim olookFolder As Outlook.MAPIFolder
Dim olookContact As Outlook.ContactItem
Dim olookUserProp As Outlook.UserProperty
Dim colItems As Items

Set olookSpace = olookApp.GetNamespace("MAPI")
Set olookFolder = olookSpace.GetDefaultFolder(olFolderContacts)
Set colItems =
olookApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts).Items

rst.MoveFirst

' loop through the Microsoft Access records.
Do Until rst.EOF
With colItems.Add
Set olookContact =
olookApp.CreateItem(olContactItem)

olookContact.MessageClass = "IPM.Contact"
Set olookUserProp =
olookContact.UserProperties.Add("CodeContactInOutlook", olNumber)

olookUserProp = rst![Code Contact] 'name
in the Access table

.Save
End With
rst.MoveNext
Loop

rst.Close
' clean up


'db.Close
'Set db = Nothing

End Sub
----------------

Thank you



Anthony F. said:
Hello,


working on access 2002 to outlook 2002, I try to create
(from Access) a user-defined field.

The creation seems to work.

But I can't fill this new user-defined field
as it remains empty for all my contacts.
(even though I fill it programmaticaly)

I work in the Contact default folder.


Thank you
Anthony
 

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