You can apply this to the particulars of your case this is using outlook 2000 and access 2000 with references to dao<br>You do need an exchange profile for the user on the machine<br>I've been trying to figure a way without it you need to set a reference to the Outlook 9.0 in tools and you can add to what aspect of the contact you want to update<br><br>Public Function EditContacts(strProfile, strPWord As String) As Boolean<br>Dim objOutlook As Outlook.Application<br>Dim objContact As ContactItem<br>Dim nsName As Outlook.NameSpace<br>Dim recA As DAO.Recordset<br>Dim strSql As String<br> <br> strSql = "Select * FROM [YOURTABLE] Where PROFILENAME =" & Chr$(34) & strProfile & Chr$(34)<br> <br> Set recA = CurrentDb().OpenRecordset(strSql, dbOpenDynaset)<br> <br> If IsAppThere("Outlook.application"

= False Then<br> Set objOutlook = CreateObject("outlook.application"

'create new instance<br> <br> Else<br> Set objOutlook = GetObject<br>, "outlook.application"

'reference existing instance<br> End If<br> <br> Set nsName = objOutlook.GetNamespace("MAPI"

<br> <br> nsName.Logon strProfile, strPWord, True, True<br> <br> <br> <br> Set objContact = objOutlook.CreateItem(olContactItem)<br><br> <br> With objContact<br> .FirstName = IIf(IsNull(recA.Fields(0)), "", recA.Fields(0))<br> .LastName = recA.Fields(1)<br> .Email1Address = recA.Fields(2)<br> .Save<br> End With<br> <br> <br> <br> Set objOutlook = Nothing<br> Set objContact = Nothing<br> Set nsName = Nothing<br> <br>End Function<br><br><br><br>This checks is Outlook is running or not<br><br>Public Function IsAppThere(appName) As Boolean<br> On Error Resume Next<br> Dim objApp As Object<br> <br> IsAppThere = True<br> <br> Set objApp = GetObject(, appName)<br> If Err.Number <> 0 Then IsAppThere = False<br> <br><br>End Function<br>