Microsoft KB Archive/145759

= "User-Defined Type Not Defined" Error Message Using DAO =

Article ID: 145759

Article Last Modified on 10/11/2006

-

APPLIES TO


 * Microsoft Excel 2000 Standard Edition
 * Microsoft Excel 97 Standard Edition
 * Microsoft Excel 95 Standard Edition

-



This article was previously published under Q145759



SYMPTOMS
When you run a Microsoft Excel Visual Basic for Applications subroutine using data access objects (DAO), you may receive one of the following compile errors:

Compile error:

User-Defined Type Not Defined

-or-

Sub or Function Not Defined



CAUSE
You may receive the error message when a subroutine contains code that uses the Microsoft DAO Object Library, and the library is not referenced.



RESOLUTION
In order to avoid the error message, perform the following steps.

Microsoft Excel 7.0
 Select a Module Sheet. On the Tools menu, click References.

NOTE: It is necessary to be on a Module Sheet before you select the Tools menu because References is not available on the Tools menu on a worksheet, a dialog sheet, or a chart sheet.  In the References dialog box, under Available References, click to select "Microsoft DAO 3.0 Object Library," and then click OK.

If "Microsoft DAO 3.0 Object Library" is not listed in the list box under Available References, click Browse and look for the Dao3032.dll file. It should be located in:       \Program Files\Common Files\Microsoft Shared\Dao\Dao3032.dll Select the file and click OK. This returns you to the References dialog box. Click OK. 

Microsoft Excel 97 and Microsoft Excel 2000
 In the Visual Basic Editor, click References on the Tools menu.  In the References dialog box, under Available References, select "Microsoft DAO 3.5 Object Library," and then click OK.

If "Microsoft DAO 3.5 Object Library" is not listed in the list box under Available References, click Browse and look for the Dao350.dll file. It should be located in: <pre class="fixed_text">      \Program Files\Common Files\Microsoft Shared\Dao\Dao350.dll Select the file and click OK. This returns you to the References dialog box. Click OK. </li></ol>

<div class="moreinformation_section">

MORE INFORMATION
When you run a subroutine using DAO, and the DAO Object Library is not referenced, you receive one of the messages list above, depending on what code is written. If your code declares variables, for example Dim Db as Database Dim Rs as Recordset you receive the

User-Defined Type Not Defined

message, and the subroutine fails in the variable declaration section.

If you did not declare your variables, you receive the

Sub or Function Not Defined

error message, and the subroutine fails at the first use of a statement that requires the DAO Object Library. This line is usually: Set Db = Workspaces(0).OpenDatabase(Path, ) In this case, the subroutine fails when it encounters "Workspaces."

Additional query words: 8.00 97 XL97 XL

Keywords: kberrmsg kbprogramming KB145759

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.