Kevin Waddle
thewaddles at sbcglobal.net
Mon Nov 12 20:28:40 CST 2007
Susan,
I built a sample table...
tblContacts
ID
Full Name
Company
File As
E-mail
Phone
...and added the following code:
Function to add reference to Outlook2003
Function to loop through tblContacts and add to Contacts in Outlook
Sub to call the Functions
Seems to work OK for me.
HTH,
Kevin
Option Compare Database
Option Explicit
Function AddRefOutlook() As Boolean
'Add a reference to Outlook 2003
Dim strRef As String
Dim ref As Reference
strRef = "C:\Program Files\Microsoft Office\Office11\msoutl.olb"
'My Office install in on my G drive
'strRef = "G:\Program Files\Microsoft Office\Office11\msoutl.olb"
On Error GoTo ErrorOnDLL
Set ref = References.AddFromFile(strRef)
Exit Function
ErrorOnDLL:
'If the reference is already there then...
If Err.Number = 32813 Then
'...do something
Debug.Print "reference is already there"
AddRefOutlook = True
Else
Debug.Print Err.Number & " " & Err.Description
AddRefOutlook = False
End If
End Function
Function AddContacts()
'---------
'Must set reference to Outlook library
'---------
Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim ol As New Outlook.Application
Dim olns As Outlook.NameSpace
Dim fldContacts As Outlook.MAPIFolder
Dim itms As Outlook.Items
Dim cf As Object
Set cnn = CurrentProject.Connection
Set ol = CreateObject("Outlook.Application")
Set olns = ol.GetNamespace("MAPI")
' Which folder is the contacts list in?
Set fldContacts = olns.GetDefaultFolder(olFolderContacts)
Set itms = fldContacts.Items
rst.Open "tblContacts", cnn
rst.MoveFirst
Do While Not rst.EOF
Set cf = itms.Add("IPM.Contact")
With cf
.FullName = rst.Fields(1).Value
.CompanyName = rst.Fields(2).Value
.FileAs = rst.Fields(3).Value
.Email1Address = rst.Fields(4).Value
If Not IsNull(rst.Fields(5).Value) Then
.PrimaryTelephoneNumber = rst.Fields(5).Value
End If
.Save
End With
Set cf = Nothing
rst.MoveNext
Loop
Set ol = Nothing
Set olns = Nothing
Set fldContacts = Nothing
Set itms = Nothing
End Function
Sub Test()
Dim x As Variant
x = AddRefOutlook
x = AddContacts
End Sub
Famous Last Words: 'This should be easy...'
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins
Sent: Monday, November 12, 2007 2:16 PM
To: AccessD at databaseadvisors.com
Subject: [AccessD] Access to Outlook
I posted the following code on the tech list this weekend, but so far
haven't resolved the problem I'm having. I'm trying to send Access values to
Outlook as a new contact. The Set itm = itms.Add("IPM.Contact") statement
returns a can't set object variable error.
Susan H.
Function SendContactsToOutlook()
Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
'---------
'Must set reference to Outlook library
'---------
Dim itms As Outlook.Items
Dim itm As Outlook.ContactItem
Set cnn = CurrentProject.Connection
rst.Open "tblContacts", cnn
'Outlook Folder name is hardcoded
Set itm = itms.Add("IPM.Contact")
With itm
.CustomerID = Nz(rst!CustomerID)
.FirstName = Nz(rst!FirstName)
.LastName = Nz(rst!LastName)
.Department = Nz(rst!Department)
.Birthday = Nz(rst!Department)
.Close (olSave)
'DoCmd.RunCommand acCmdSaveRecord
End With
Set rst = Nothing
Set cnn = Nothing
Set itms = Nothing
Set itm = Nothing
End Function
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com