The information in this article applies to:
Advanced: Requires expert coding, interoperability, and multiuser skills. SYMPTOMSWhen you compile a module that has a procedure which tries to call another procedure that is in a class module in another database, you may receive the following error message:
CAUSEClass modules are private in scope to the Visual Basic project in the database in which they are defined; therefore, procedures in class modules cannot be referenced in another Visual Basic project. RESOLUTIONUse one of the following two methods to work around this behavior. Method 1Store the procedure in a standard module rather than in a class module. This makes the procedure directly accessible from other databases but requires that you convert your class module procedures to standard module procedures.Method 2Create a function in a standard module in the database where the class module is defined. This function calls the procedure from the class module. Then, you call this function from a standard module of another database. This allows you to leave your class module procedures as they are, but requires that you write a standard procedure for each class module procedure that you want to run.MORE INFORMATIONAlthough you cannot directly call a procedure defined in a class module of another database from procedures outside of that database, you may notice that you can call them from the Immediate window. The reason for this is that Visual Basic for Applications relaxes privacy rules and scope restrictions in the Immediate window to aid in debugging procedures. Steps to Reproduce Behavior
REFERENCESFor more information about creating references, in the Visual Basic Editor, click
Microsoft Visual Basic Help on the Help menu, type
references property in the Office Assistant or the Answer Wizard, and
then click Search to view the topic. Additional query words:
Keywords : kberrmsg kbprg |
Last Reviewed: September 15, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |