ACC2000: "A Module Is Not a Valid Type" Compile Error Message (208747)



The information in this article applies to:

  • Microsoft Access 2000

This article was previously published under Q208747
Moderate: Requires basic macro, coding, and interoperability skills.

SYMPTOMS

When you compile a database in Microsoft Access, you may receive the following error message:
A module is not a valid type.

CAUSE

The module has the same name as a Microsoft Access object or a Data Access Object, and it contains a variable declared as the same object type as its name. For example, if the module is named Form, you will receive the error message if any of the procedures in the module has a form variable such as the following:
Dim f as Form
				

RESOLUTION

Rename the module to a name other than a Microsoft Access object name or a Data Access Object name.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

This error did not occur in Access 2.0. If you have converted your database from Access 2.0 to Access 2000, you my receive this error if you have any modules named as described in the "Symptoms" section of this article.

Steps to Reproduce Problem

  1. Create a module and type the following line in the Declarations section if it is not already there:
    Option Explicit
    					
  2. Type the following procedure:
    Function Test(F as Form)
       MsgBox "Form Name: " & F.Name
    End Function
    					
  3. Save the module and name it Form.
  4. On the Debug menu, click Compile <database name>. Note that you receive the following error message:
    A module is not a valid type.

REFERENCES

For more information about naming conventions, click Microsoft Access Help on the Help menu, type guidelines for naming objects in the Office Assistant or the Answer Wizard, and then click Search to view the topic.

Modification Type:MinorLast Reviewed:7/15/2004
Keywords:kbbug kberrmsg kbpending KB208747