Microsoft KB Archive/209946

= ACC2000: Sample Procedure to Link a Microsoft Outlook Folder =

Article ID: 209946

Article Last Modified on 6/23/2005

-

APPLIES TO


 * Microsoft Access 2000 Standard Edition

-



This article was previously published under Q209946



Moderate: Requires basic macro, coding, and interoperability skills.

This article applies only to a Microsoft Access database (.mdb).



SUMMARY
This article shows you how to create a sample procedure to link a Microsoft Outlook folder as a table in a Microsoft Access database.



MORE INFORMATION
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. NOTE: The sample code in this article uses Microsoft Data Access Objects. For this code to run properly, you must reference the Microsoft DAO 3.6 Object Library. To do so, click References on the Tools menu in the Visual Basic Editor, and make sure that the Microsoft DAO 3.6 Object Library check box is selected.

There are some issues to consider when you use a linked Microsoft Outlook folder in Microsoft Access:  You cannot select which fields appear in the linked table; a subset of the total number of Microsoft Outlook fields appears in the table. However, you can rearrange or hide the fields in Datasheet view of the table to customize its appearance. You can add and delete records, but you cannot modify any records in the table. You cannot enter data into some fields in the linked table, even when you are adding a new record. If items in the linked Microsoft Outlook folder use a special form, you must enter the correct form type in the Message Class field when you add new records to the table. If you do not specify a Message Class, Microsoft Outlook uses the default mail form to display your data. The Message Classes for the standard Microsoft Outlook folders are:



The following sample procedure creates a table linked to a folder in a Microsoft Outlook mailbox. To use the procedure, you must do the following:  Set up Microsoft Outlook on your computer.</li> Set the SourceTableName property in the procedure to the name of the mail folder that you want to link to your database.</li> Substitute valid Connect property parameters for the linked table in the procedure:

</li></ul>

You can open a table that is linked to a Microsoft Outlook or Microsoft Exchange folder if that table's Connect property does not contain a profile parameter. However, when you open the table, you may have to supply profile information multiple times, instead of just once. <ol> Open a Microsoft Access 2000 database.</li>  Create a new module and enter the following: Option Compare Database Option Explicit

Function AttachMail ''   'This code requires that the following object library be referenced: '  Microsoft DAO 3.6 Object Library. ''   Dim db As DAO.Database Dim td As DAO.TableDef

On Error GoTo Errorhandler

Set db = CurrentDb Set td = db.CreateTableDef("tblInbox")

'Within the following line, replace with the actual 'Exchange mailbox name created on your computer. For example: '  Nancy Davolio td.Connect = "Exchange 4.0;MAPILEVEL=Mailbox - |;" 'Within the following line, replace <drive\path\dbname> with the 'actual path to the database. For example: '  C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb 'This will also support UNC (for example, \\servername\share\dbname). td.Connect = td.Connect & "DATABASE=<drive\path\dbname>;" 'Within the following line, replace with the actual 'name of your email profile created on your computer. For example: '  Microsoft Outlook td.Connect = td.Connect & "PROFILE= "

'Substitute the name of the email folder you wish to attach. 'In this example, we will attach the Inbox folder. td.SourceTableName = "Inbox"

db.TableDefs.Append td

Application.RefreshDatabaseWindow

MsgBox "Table Appended!"

Exit Function

Errorhandler: MsgBox "Error " & Err & " " & Error Exit Function End Function </li>  Press CTRL+G to open the Immediate window, type the following line, and then press ENTER: ?AttachMail Note that after the procedure runs, the e-mail folder will be linked as a read-only table in the database. </li></ol>

<div class="references_section">