Article ID: 246237 - Last Review: May 11, 2007 - Revision: 7.3 BUG: Access object model breaks binary compatibilityThis article was previously published under Q246237 SYMPTOMS
Automation clients written for Microsoft Access 97 that use either early binding (VB, ATL with #import) or dispid binding (MFC) might unexpectedly fail when trying to automate Microsoft Access 2000, Microsoft Access 2002, Microsoft Office Access 2003, or Microsoft Office Access 2007. Among the possible errors you might receive as a result of this problem are as follows:
0x80020003 : 438 - Object doesn't support this property or method.
0x80020004 : 448 - Named argument or parameter not found.
0x80020005 : 13 - Type mismatch.
CAUSE
During development of Access 2000, the Access object model was accidentally modified in a way that breaks both binary (v-table) and dispid compatibility with Access 97. Any client application that uses
early or dispid binding to Access 97 might fail to work properly when run
against Access 2000, Access 2002, Access 2003, and Access 2007.
The following non-compatible changes were made to the Access object model:
RESOLUTION
Automation clients that want to Automate Access 97, Access 2000, Access 2002, Access 2003, and Access 2007 "must" use late binding (that is, IDispatch::GetIdsOfNames and IDispatch::Invoke).
STATUS
Microsoft has confirmed this to be a bug in Access 2000. However, due to the number of clients currently using early binding to Access 2000, this problem cannot be fixed without risking further incompatibilities. Access 2002, Access 2003, and Access 2007 remain compatible with Access 2000, but not Access 97. Microsoft recommends that out-of-process clients use late binding to automate Access. REFERENCES
For more information about Automation binding methods, click the following article number to view the article in the Microsoft Knowledge Base:
245115
(http://support.microsoft.com/kb/245115/
)
Using early binding and late binding in Automation
| Article Translations
|
Back to the top
