Erwin Craps - IT Helps
Erwin.Craps at ithelps.be
Fri Jan 23 05:08:16 CST 2004
Have a bit of a hangover today...
I live in a 35000 students-city and Thursday night is out-night (for me
that is once every tree months due to, well not used anymore. It takes
me tree months to recuperate :-)...
I'll try to take a small peak in to it.
But you should be able to change data with adapting my routine to edit
rather than new.
Erwin
-----Oorspronkelijk bericht-----
Van: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] Namens Susan Harkins
Verzonden: vrijdag 23 januari 2004 1:55
Aan: Access Developers discussion and problem solving
Onderwerp: Re: [AccessD] modifying Outlook contact items from Access
Thanks Erwin -- I've found lots of examples for adding new contact
items.
What I haven't found is an example of modifying an existing one. There
must be a method I'm not aware of or perhaps I'm working with the wrong
collection --just simply setting a equality's statement doesn't work. It
doesn't return an error, but it doesn't work either.
For Each itm In fld.Items
If itm.Class = olContact Then
If itm = rst(0) Then
itm.Birthday = rst(1)
End If
End If
Next
where rst is a simple two field record and rst(1) equals the new
birthday.
Susan H.
----- Original Message -----
From: "Erwin Craps - IT Helps" <Erwin.Craps at ithelps.be>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Sent: Thursday, January 22, 2004 4:18 PM
Subject: RE: [AccessD] modifying Outlook contact items from Access
> Hi Susan
>
> Here's some code that creates contacts in Outlook from Access.
> The function needs adapting, cause I grabbed it right of my app...
>
>
>
>
> Public Function CreateContactsInOutlook()
> ' Comments :
> ' Parameters: -
> ' Modified :
> '
> ' --------------------------------------------------
> 'TVCodeTools ErrorEnablerStart
> On Error GoTo PROC_ERR
> 'TVCodeTools ErrorEnablerEnd
>
> Dim oOut As Outlook.Application
> Dim oNSpace As Outlook.NameSpace
> Dim oFolderContact As Outlook.MAPIFolder
> Dim oFolder As Outlook.MAPIFolder
> Dim objOItem As Object
> Dim strFolderName As String
> Dim rsCust As Recordset
> Dim strSQL As String
> Dim intCounter As Integer
> Dim lngItemCounter As Long
> Dim varCUST_GID As Variant
>
> DoCmd.Hourglass True
>
> Set oOut = Outlook.Application
> Set oNSpace = oOut.GetNamespace("MAPI")
> Set oFolderContact = oNSpace.GetDefaultFolder(olFolderContacts)
>
> 'Create Folders
> strFolderName = "IT Helps Relations"
> On Error Resume Next
> Set oFolder = oFolderContact.Folders(strFolderName)
> If Err <> 0 Then
> On Error GoTo PROC_ERR
> Set oFolder = oFolderContact.Folders.Add(strFolderName,
> olFolderContacts)
> Else
> For lngItemCounter =
> oFolderContact.Folders(strFolderName).Items.Count To 1 Step -1
>
> oFolderContact.Folders(strFolderName).Items(lngItemCounter).Delete
> DoEvents
> Next lngItemCounter
> End If
> On Error Resume Next
> oFolder.ShowAsOutlookAB = True
> On Error GoTo PROC_ERR
>
>
> strSQL = "SELECT CUST_Main.*, CUST_Names.CUST_LID,
> CUST_Names.Mailing ,CUST_Names.Language_LID, SUB_L_Titles.Title,
> SUB_L_Titles.LetterStart, CUST_Names.FirstName, CUST_Names.SurName,
> CUST_Names.DirectFax, CUST_Names.DirectPhone, CUST_Names.Email,
> CUST_Names.GSMnumber, SUB_L_Countries.Country " _
> & "FROM SUB_L_Countries RIGHT JOIN (CUST_Main LEFT JOIN
> (SUB_L_Titles RIGHT JOIN CUST_Names ON SUB_L_Titles.Title_LID =
> CUST_Names.Title_LID) ON CUST_Main.CUST_GID = CUST_Names.CUST_GID) ON
> SUB_L_Countries.Country_LID = CUST_Main.Country_LID " _
> & "WHERE CUST_Names.Mailing = true " _
> & " ORDER BY CUST_Main.CUST_GID;"
>
> Set rsCust = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
>
> With rsCust
> Do While rsCust.EOF = False
> 'Save Main company data
> If varCUST_GID <> .Fields("CUST_GID") Then
> If (Nz(.Fields("MainPhone")) <> "") Or
> (Nz(.Fields("EmailAddress")) <> "") Then
> Set objOItem =
> oFolderContact.Folders(strFolderName).Items.Add(olContactItem)
> objOItem.BusinessAddressCity = Nz(.Fields("City"))
> objOItem.BusinessAddressCountry =
> Nz(.Fields("Country"))
> objOItem.BusinessAddressPostalCode =
> Nz(.Fields("Postalcode"))
> objOItem.BusinessAddressStreet =
> Nz(.Fields("Street"))
> objOItem.BusinessFaxNumber =
> InternationalPhone(Nz(.Fields("MainFax")))
> objOItem.BusinessTelephoneNumber =
> InternationalPhone(Nz(.Fields("MainPhone")))
> objOItem.CompanyName = Nz(.Fields("Company"))
> objOItem.CustomerID = Nz(.Fields("CUST_GID"))
> objOItem.Email1AddressType = "SMTP"
> objOItem.Email1Address =
Nz(.Fields("EmailAddress"))
> objOItem.Fullname = Nz(.Fields("Company"))
> objOItem.FileAs = objOItem.Fullname
> objOItem.Save
> End If
> End If
>
> 'Save Contact person data
> If (Nz(.Fields("DirectPhone")) <> "") Or
> (Nz(.Fields("GSMnumber")) <> "") Or (Nz(.Fields("Email")) <> "") Then
> Set objOItem =
> oFolderContact.Folders(strFolderName).Items.Add(olContactItem)
> objOItem.BusinessAddressCity = Nz(.Fields("City"))
> objOItem.BusinessAddressCountry =
Nz(.Fields("Country"))
> objOItem.BusinessAddressPostalCode =
> Nz(.Fields("Postalcode"))
> objOItem.BusinessAddressStreet = Nz(.Fields("Street"))
> objOItem.BusinessFaxNumber =
> InternationalPhone(Nz(.Fields("DirectFax")))
> objOItem.BusinessTelephoneNumber =
> InternationalPhone(Nz(.Fields("DirectPhone")))
> objOItem.MobileTelephoneNumber =
> InternationalPhone(Nz(.Fields("GSMnumber")))
> objOItem.CompanyName = Nz(.Fields("Company"))
> objOItem.CustomerID = Nz(.Fields("CUST_LID"))
> objOItem.Email1AddressType = "SMTP"
> objOItem.Email1Address = Nz(.Fields("Email"))
> objOItem.FirstName = Nz(.Fields("Firstname"))
> objOItem.LastName = Nz(.Fields("Surname"))
> objOItem.Title = Nz(.Fields("Title"))
> objOItem.Fullname = Nz(.Fields("Surname")) & ", " &
> Nz(.Fields("Firstname"))
> objOItem.FileAs = objOItem.Fullname
> objOItem.Save
> End If
> varCUST_GID = .Fields("CUST_GID")
> .MoveNext
> Loop
> End With
>
>
> 'TVCodeTools ErrorHandlerStart
> PROC_EXIT:
> On Error Resume Next
> rsCust.Close
> Set rsCust = Nothing
> Set oFolder = Nothing
> Set oFolderContact = Nothing
> Set oNSpace = Nothing
> Set oOut = Nothing
> DoCmd.Hourglass False
> MsgBox "Finished!"
> Exit Function
>
> PROC_ERR:
> Select Case Err
> Case 0
> 'Do Nothing
> Case Else
> MsgBox Err.Description & vbCrLf &
> "CreateContactsInOutlook", vbOKOnly, "ERROR:" & Err.Number
> Resume PROC_EXIT
> End Select
> 'TVCodeTools ErrorHandlerEnd
>
> End Function
>
>
>
>
> -----Oorspronkelijk bericht-----
> Van: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com] Namens MartyConnelly
> Verzonden: donderdag 22 januari 2004 21:04
> Aan: Access Developers discussion and problem solving
> Onderwerp: Re: [AccessD] modifying Outlook contact items from Access
>
>
> There is an Exchange OLEDB Provider available for those that use it.
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/w
> ss
> /_exch2k_search_tasks.asp
> And this method might work
>
> This article describes how you can open a connection to a Microsoft
> Exchange or to a Microsoft Outlook mailbox by using ActiveX Data
> Objects
>
> (ADO) and the Jet OLE DB provider
> http://support.microsoft.com/?kbid=275262
>
> Susan Harkins wrote:
>
> >This is for instructional purposes, so I have to do it the long hard
> >way. :)
> >
> >I can import the data into Access, modify it, and send it back to
> >Outlook. I'm just wondering if there isn't a more direct route -- it
> >would be cool if I could connect an Access form's to a recordset
> >that's
>
> >connected directly to Outlook -- so the changes in Access would be
> >immediate -- I just don't know if that's possible, or even the best
> >way
>
> >to go about it.
> >
> >Susan H.
> >
> >
> >
> >
> >>Hi Susan
> >>Well I cheat. I have a number of Outlook address books some of which
> >>are based on Access data. I use a 3rd-party product which each night
> >>wipes out these address books, extracts the Access data and rebuilds
> >>the address books. Works like a charm. I could no doubt write
> >>something but as the product existed..... See
> >>http://www.teamscope.com/otherpro/datalink.asp
> >>
> >>
> >>Andy Lacey
> >>http://www.minstersystems.co.uk
> >>
> >>
> >>
> >>>-----Original Message-----
> >>>From: accessd-bounces at databaseadvisors.com
> >>>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan
> >>>Harkins
> >>>Sent: 22 January 2004 17:26
> >>>To: AccessD at databaseadvisors.com
> >>>Subject: [AccessD] modifying Outlook contact items from Access
> >>>
> >>>
> >>>I'm familiar enough with the Outlook model that importing Contact
> >>>data into Access is easy -- but I'm wondering if any of you use
> >>>Access to actually modify Outlook contact information? I haven't
> >>>even
>
> >>>started, but would be interested in hearing how others do it. I
> >>>know you can link, but that only works if Outlook is the default
> >>>mail client.
> >>>
> >>>Susan H.
> >>>
> >>>_______________________________________________
> >>>AccessD mailing list
> >>>AccessD at databaseadvisors.com
> >>>http://databaseadvisors.com/mailman/listinfo/a> ccessd
> >>>Website:
> >>>http://www.databaseadvisors.com
> >>>
> >>>
> >>>
> >>>
> >>_______________________________________________
> >>AccessD mailing list
> >>AccessD at databaseadvisors.com
> >>http://databaseadvisors.com/mailman/listinfo/accessd
> >>Website: http://www.databaseadvisors.com
> >>
> >>
> >>
> >
> >_______________________________________________
> >AccessD mailing list
> >AccessD at databaseadvisors.com
> >http://databaseadvisors.com/mailman/listinfo/accessd
> >Website: http://www.databaseadvisors.com
> >
> >
> >
>
> --
> Marty Connelly
> Victoria, B.C.
> Canada
>
>
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com