ACC: 'TMP%#MAU' Error Generated When Opening Linked TableID: Q167849
|
Advanced: Requires expert coding, interoperability, and multiuser skills.
When you try to open a linked table that uses an ODBC driver, you may
receive the following error message:
Table 'TMP%#MAU@' already exists.
When you link to an ODBC Data Source, the Microsoft Jet database engine calls SQLSpecialColumns for the table you are linking. If SQLSpecialColumns returns a column name, but does not include that column name in the meta- data returned by SQLColumns, an internal state variable for the Column ID of that column is not initialized to a valid value for a Column ID. When you try to open the linked table, the Jet database engine tries to get information about the invalid Column ID. If it does not resolve to a column in the meta-data that is returned by the ODBC Driver, the Jet database engine tries to refresh the meta-data, creating a temporary table called TMP%#MAU. That table already exists, so the error message occurs, and you cannot open the table.
There are two ways you can work around this problem:
Microsoft has confirmed this to be a problem in Microsoft Access 7.0
and 97. This problem no longer occurs in the updated version of the file,
Msjet35.dll. The updated version of the file can be obtained from the
following sources:
With the Microsoft Jet database engine version 3.5, the value in the
uninitialized Column ID variable is most often outside the range of column
ordinal values, so the special column is not found and the Jet database
engine tries to refresh the meta-data. However, this occurs within the
meta-data refresh code itself, and the code is not designed to be called
recursively. So when the Jet database engine tries to create a temporary
table to retrieve the meta-data, it fails because the temporary table
already exists.
This behavior differs from the Microsoft Jet database engine version 3.0
that ships with Microsoft Access for Windows 95 version 7.0. With that
version of the Jet database engine, the value in the uninitialized Column
ID variable is typically within the range of column ordinal values in the
table being accessed. Therefore the special column is found, no attempt is
made to refresh the meta-data, and the table opens successfully.
For more information about SQL pass-through queries, search the Help Index
for "pass-through queries," and see the following articles in the Microsoft
Knowledge Base:
Q112108 ACC: How to Create an SQL Pass-Through Query in Code
Q124391 ACC: Sample Code for Running Temporary SQL Pass-Through
Query
Q131534 ACC How to Simulate Parameters in an SQL Pass-Through Query
Additional query words: link attach thru spt sqlbase gupta centura intersolv
Keywords : kberrmsg OdbcNonms OdbcProb
Version : WINDOWS:7.0,97
Platform : WINDOWS
Issue type : kbbug
Last Reviewed: June 2, 1999