DOCUMENT:Q163278 01-MAY-2001 [ssafe] TITLE :ACC97: Err Checking Out Data Object with Linked Exchange Table PRODUCT :Microsoft SourceSafe PROD/VER:97 OPER/SYS: KEYWORDS:kberrmsg kbinteropkbbuglist ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual SourceSafe for Windows, versions 4.0, 4.0a, 5.0 - Microsoft Access 97 ------------------------------------------------------------------------------- SYMPTOMS ======== Advanced: Requires expert coding, interoperability, and multiuser skills. If you have a database under source code control with Microsoft Visual SourceSafe, and the database contains links to a Microsoft Outlook or Microsoft Exchange folder, when you check out Data and Misc. Objects you may receive one of the following error messages Table 'ExchangeTable000' already exists -or- Table 'MSysExchangeColumns' already exists which is followed by Failed to import file '' into Microsoft Access. After these errors, checking out Data and Misc. Objects stops, and any remaining tables in the database are not imported from Visual SourceSafe. NOTE: The Source Code Control component of Microsoft Access 97 is included with the Microsoft Office 97 Developer Edition Tools. This article assumes that you are familiar with using the client-side capabilities of Visual SourceSafe. For more information about Visual SourceSafe, please refer to the "Visual SourceSafe User's Guide" or Help topics available from the Visual SourceSafe Help menu. CAUSE ===== When you check out the linked Microsoft Exchange or Microsoft Outlook table, it creates new system tables in the Microsoft Access database. When Visual SourceSafe tries to import the original system tables with the same name, an error occurs and check out stops. RESOLUTION ========== The resolution contains two parts. First, you must recover data and design changes if you can. Second, you must prevent the error from occurring when you use links to Microsoft Exchange or Microsoft Outlook folders. Recovering Data After the Error ------------------------------- Data and Misc. Objects contains the following Microsoft Access database components: tables, relationships, user-defined toolbars and menus, database properties, startup properties, import/export specifications, Microsoft Visual Basic project references, the project name of the database, and conditional compilation arguments. If you created the table links before you added the database to Visual SourceSafe, when the error occurs you must restore the database from a backup if there are any tables or other objects that are missing from the database. Because all of the Data and Misc. Objects are stored in Visual SourceSafe as a single binary object, you cannot retrieve missing objects individually. If you do not have a backup, delete the linked Microsoft Exchange or Microsoft Outlook tables, and then recreate any missing data, tables, table design changes, or other components. If you created the table links sometime after you added the database to Visual SourceSafe, and if Visual SourceSafe is configured to retain a history of your modifications, you can recover some or all of the data by following these steps: 1. After you receive the error, the Data and Misc. Objects that were checked out before the error message are still checked out in your database. On the Tools menu, point to SourceSafe, and then click Undo Check Out. Undo the check out for Data and Misc. Objects, and click Yes when prompted if you want to undo checkout and lose changes. Note that you receive the same error messages again when you undo the check out. 2. If you have any other database objects checked out, check them back in as you usually do. 3. Make a backup copy of the database. You will import objects from this copy in a later step. 4. On the Tools menu, point to SourceSafe, and then click Show History. 5. In the History dialog box, select the version before the one in which you created the links to Microsoft Exchange or Microsoft Outlook, and then click Rollback. NOTE: Rolling back to an earlier revision will cause you to lose some of the modifications you have made to your database. Rolling back to the version immediately before the creation of the linked tables will minimize this loss. 6. When the rollback is complete, check out Data and Misc. Objects. 7. Recover missing design and data changes to Data and Misc. Objects by importing objects or appending data from the backup database you created in step 3. You must recreate any changes you cannot recover. Verify that each component is fully restored and up-to-date in your rolled-back database before you proceed with further development. Preventing the Error from Occurring ----------------------------------- The only way to prevent the error is to name your links to Microsoft Exchange or Microsoft Outlook folders so they appear alphabetically after MSysExchangeTables. A good rule of thumb is to name those links starting with the letter N or higher. When you check out Data and Misc. Objects, the tables are imported alphabetically; if your linked tables start with the letter N or higher, the Microsoft Exchange system tables will already exist in the database when the linked table is imported by Visual SourceSafe. When the links are refreshed, Microsoft Access uses the existing system tables and does not try to create new ones. STATUS ====== Microsoft has confirmed this to be a problem in Microsoft Access 97. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available. MORE INFORMATION ================ When you first link to a Microsoft Exchange or Microsoft Outlook folder, three system tables are created in your database to manage the link: MSysExchangeColumns, MSysExchangeTables, and ExchangeTable000. Each subsequent link creates one new incremental system table: ExchangeTable001, ExchangeTable002, and so on. When you check in Data and Misc. Objects, Visual SourceSafe stores those system tables with your other tables. When you check out Data and Misc. Objects again, if your linked table occurs alphabetically before ExchangeTablexxx or MSysExchangeColumns, it is imported before those system tables. Because they don't exist in the database, those system tables are recreated when the table link is refreshed. Then Visual SourceSafe tries to import the copy of those system tables it has stored, and an error occurs because the tables already exist. Steps to Reproduce Problem -------------------------- 1. Create a new blank database in Microsoft Access 97. 2. Create a link to a Microsoft Exchange or Microsoft Outlook folder. Regardless of the name of the folder you link to, name the linked table Contacts in Microsoft Access. This ensures that it appears alphabetically in the Database window before its supporting system tables. 3. Create another table called Test. It can be an empty table, and only needs to contain a single field. You do not need to create a primary key. 4. On the Tools menu, point to SourceSafe, and then click Add Database to SourceSafe. Add the database to a new SourceSafe project. 5. Check out Data and Misc. Objects. Note that you receive the error message Table 'ExchangeTable000' already exists followed by Failed to import file '' into Microsoft Access. After you click OK, note also that the Test table is missing from the Database window. REFERENCES ========== For more information about installing and using the Microsoft Outlook/Exchange driver, please see the following articles in the Microsoft Knowledge Base: Q159322 ACC97: Paradox, Lotus, & MS Exchange/Outlook ISAMs in ValuPack Q161173 ACC97: MS Exchange ISAM Driver Requires Manual Registration Q161174 ACC97: Sample Procedure to Attach a Microsoft Outlook Folder For more information about Microsoft Access system tables, search the Help Index for "system tables," or ask the Microsoft Access 97 Office Assistant. Additional query words: outlook exchange isam vss mail mapi attach ====================================================================== Keywords : kberrmsg kbinterop kbbuglist Technology : kbSSafeSearch kbAudDeveloper kbAccessSearch kbAccess97 kbAccess97Search kbSSafe400 kbSSafe400a kbSSafe500 Version : 97 Hardware : x86 Issue type : kbbug ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2001.