ACC2000: Same Named Module and Procedure Causes Errors

ID: Q210098


The information in this article applies to:

Moderate: Requires basic macro, coding, and interoperability skills.

This article applies to a Microsoft Access database (.mdb) and a Microsoft Access project (.adp).


SYMPTOMS

When you run a procedure from an object's events, you may receive the following error message:

The expression [event name] you entered as the event property setting produced the following error: The expression you entered has a function name that Microsoft Access can't find.
If you use the RunCode action in a macro to call a function, you may receive the following error message:
The expression you entered has a function name that Microsoft Access can't find.
If you try to run a procedure from the Immediate window, you may receive the following error message:
Compile Error:
Expected variable or procedure, not module.
NOTE: All the modules in the database or project will appear to compile successfully.


CAUSE

A user-defined function or a subroutine have the same name as a module. These errors occur even if the procedure is not contained in the module with the same name.


RESOLUTION

Change the name of a procedure so that it is different from the name of any module that you have in the database or project.


MORE INFORMATION

Steps to Reproduce Behavior

  1. Create a new Microsoft Access database, and then create a module.


  2. Type the following procedure:


  3. 
    Function Test()
       MsgBox "Does this work correctly?"
    End Function 
  4. Save the module as Test.


  5. Type the following line in the Immediate window, and then press ENTER:


  6. 
    Test 

Additional query words: conversion name prb


Keywords          : kberrmsg kbprg kbdta MdlGnrl 
Version           : WINDOWS:2000
Platform          : WINDOWS 
Issue type        : kbprb 

Last Reviewed: May 13, 1999