Article: Q269617
Product(s): Microsoft FoxPro
Version(s): 6.0
Operating System(s):
Keyword(s): kbAutomation kbOutlook kbvfp600 kbGrpDSFox kbDSupport kbOutlook2000 kbCodeSnippet
Last Modified: 25-SEP-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual FoxPro for Windows, version 6.0, used with:
- Microsoft Outlook 2000
-------------------------------------------------------------------------------
SUMMARY
=======
Microsoft Outlook is an Automation Server. As such, you can programatically
control it from other applications, sending data back and forth.
MORE INFORMATION
================
The following example demonstrates how to import the Tasmanian Traders sample's
Customer table into Outlook's Contacts folder.
NOTE: The following example was written for use with Microsoft Visual FoxPro
version 6.0.
#DEFINE olFolderContacts 10
#DEFINE olCurrency 14
#DEFINE olPercent 12
LOCAL loOutlook, loNameSpace, loFolder, loContact, loNewContact
CLOSE DATA ALL
USE HOME(2) + "TasTrade\data\customer"
*!* Get an object reference to Outlook
loOutlook = CREATE("Outlook.Application")
*!* Get the MAPI namespace (the only available one)
*!* and find the Contacts folder
loNamespace = loOutlook.GetNameSpace("MAPI")
loFolder = loNameSpace.GetDefaultFolder(olFolderContacts)
*!* Add a subfolder below the standard Contacts folder
loContact = loFolder.folders.Add("Tasmanian Traders")
SCAN
loNewContact = loContact.Items.Add() && Returns an object of type
&& ContactItem
WITH loNewContact
.FullName = contact_name
.JobTitle = contact_title
.CompanyName = company_name
*!* This makes the company name appear above the contact name in
*!* Outlook. It will also sort by company name.
.FileAs = .CompanyName + " (" + ;
ALLTRIM(.LastName + ", " + .FirstName + " " + .MiddleName) + ")"
*!* Unfortunately, the Contacts table does not include email.
*!* Note: the property below is Email One Address. This is not clear
*!* under some fonts.
.Email1Address = "random@nospam.com"
.Email1AddressType = "SMTP"
lcAddress = ALLTRIM(address) + CHR(10) + ;
ALLTRIM(city) + ;
IIF(EMPTY(region), "", ", " + ALLTRIM(region)) + " " + ;
ALLTRIM(postal_code) + ;
IIF(country != "USA", CHR(10) + ALLTRIM(country), "")
.HomeAddress = lcAddress
.BusinessTelephoneNumber = ALLTRIM(phone)
.BusinessFaxNumber = ALLTRIM(fax)
*!* Create user-defined properties for extra fields
.UserProperties.Add("Max Order Amount", olCurrency)
.UserProperties.Add("Min Order Amount", olCurrency)
.UserProperties.Add("Discount", olPercent)
*!* If you use numeric indexes here (1, 2, and 3) you'll
*!* find that the collection is alphabetical.
.UserProperties("Discount").Value = ROUND(discount / 100, 2)
.UserProperties("Max Order Amount").Value = max_order_amt
.UserProperties("Min Order Amount").Value = min_order_amt
*!* ContactItem does not appear in Outlook until it is saved.
.Save
ENDwith
ENDscan
CLOSE DATA ALL
After the preceding code is run, do the following to view the results:
1. Open Microsoft Outlook and navigate to the Contacts\Tasmanian Traders folder.
2. Double-click a contact to open it. Under the General tab, note that all the
fields for each contact, except for the three user-defined fields, are
visible.
3. Select the All Fields tab to view the user-defined fields.
For similar code in Microsoft Access, click the article number below to view the
article in the Microsoft Knowledge Base:
Q290792 OL2002: How to Programmatically Export Outlook Items to Microsoft
Access
REFERENCES
==========
For additional information about Outlook Automation, click the article number
below to view the article in the Microsoft Knowledge Base:
Q222101 HOWTO: Find and Use Office Object Model Documentation
For detailed Help information about the various ContactItem fields and other
Outlook objects, see the MSDN Library under Office Developer
Documentation:Microsoft Office 2000 Language Reference:Microsoft Outlook 2000
Reference.
(c) Microsoft Corporation 2000, All Rights Reserved.
Contributions by Garrett Fitzgerald, Microsoft Corporation
Additional query words:
======================================================================
Keywords : kbAutomation kbOutlook kbvfp600 kbGrpDSFox kbDSupport kbOutlook2000 kbCodeSnippet
Technology : kbVFPsearch kbAudDeveloper
Version : :6.0
Issue type : kbhowto
=============================================================================