ACC2000: "A Module is Not a Valid Type" Compile Error Message

ID: Q208747


The information in this article applies to:

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 this to be a problem in the Microsoft products 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:


  2. 
    Option Explicit 
  3. Type the following procedure:


  4. 
    Function Test(F as Form)
       MsgBox "Form Name: " & F.Name
    End Function 
  5. Save the module and name it Form.


  6. On the Debug menu, click Compile <database name>. Note that you receive the following error message:


  7. 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.

Additional query words: pra


Keywords          : kberrmsg kbdta CnvOthr 
Version           : WINDOWS:2000
Platform          : WINDOWS 
Issue type        : kbbug 

Last Reviewed: May 13, 1999