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

  • Thread starter Thread starter Anthony F.
  • Start date Start date
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
 
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
 
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
 
Back
Top