Microsoft KB Archive/106246

{|
 * width="100%"|

ACC1x: Run-Time Error Occurs Calling Financial Functions

 * }

Q106246

-

The information in this article applies to:


 * Microsoft Access 1.1

-

SYMPTOMS
When you are calling financial functions, the following error message occurs:

A run-time error occurred in database: UTILITY. You don't have permissions to view modules in this database.

CAUSE
Although each function defined in the library has error trapping enabled, the declaration for the SetUserError subroutine does not point to the correct dynamic link library (DLL).

RESOLUTION
You must change the UTILITY.MDA file using the procedure listed below. This change will correct the declaration for the SetUserError subroutine, causing it to point to the correct DLL.

STATUS
This problem no longer occurs in Microsoft Access version 2.0.

Steps to Reproduce Problem
In any module's Immediate window, run the following function by typing:

? Rate(27,5495,277512,189000,1,0.1)

You will receive the error message stated in the SYMPTOMS section.

Steps to Correct Problem
 From the File menu, choose New Database to create a new, empty database. Type "junk.mdb" (without the quotation marks) in the File Name text box and choose OK. Close all instances of Microsoft Access. Open the MSACCESS.INI file located in the Windows directory using any text editor. (For example, use the Microsoft Windows Notepad text editor.) In the MSACCESS.INI file, locate the [OPTIONS] section. Comment out the UtilityDB line by placing a semicolon at the beginning of the line.  Add a new line to specify a new utility database called JUNK.MDB. The MSACCESS.INI file should now look like the following:

NOTE: The drive and pathnames in your MSACCESS.INI file may differ from those listed in the example below.

      [Options] ;UtilityDB=D:\ACCESS.110\UTILITY.MDA UtilityDB=D:\ACCESS.110\JUNK.MDB  Save the changes to the MSACCESS.INI file and close the text editor. Open Microsoft Access. From the File menu, choose Open Database. Type utility.mda in the File Name text box and choose OK.</li> You may receive error messages. Bypass these messages and continue.</li> Open the Finance module.</li>  Change the following line

<pre class="CODESAMP">   Declare Sub SetUserError Lib "MSABC100.DLL" (ByVal ErrCode As _                   Integer)

to:

Declare Sub SetUserError Lib "MSABC110.DLL" (ByVal ErrCode As _                  Integer)

NOTE: In the declaration above, the underscore (_) is used as a line-continuation character to improve readability. Your code will appear on a single line without the underscore. </li> Save the changes to the Finance module. Close Microsoft Access.</li>  Return the MSACCESS.INI file back to its original settings. The file should read:

NOTE: The drive and pathnames in your MSACCESS.INI file may differ from those listed in the example below.

<pre class="FIXEDTEXT">      [Options] UtilityDB=D:\ACCESS.110\UTILITY.MDA </li> Save the changes to the MSACCESS.INI file and close the text editor.</li></ol>

Keywords : kberrmsg kbprg

Issue type : kbbug

Technology :