PRB: ADO: Compile Error: User-Defined Type Not Defined

Symptoms

When you compile your ADO project, you receive the following error:

Compile error: User-defined type not defined
This can occur on either a Connection or Command object.

Cause

You may have referenced one of the following libraries instead of the Microsoft ActiveX Data Objects (ADODB) type library:

  • Microsoft ActiveX Data Objects Recordset (ADOR) type library.

    -or-
  • Microsoft ActiveX Data Objects (Multi-dimensional) (ADOMD) type library.

Resolution

Remove the incorrect type library reference from your project, and add a reference to the correct type library.

Status

This behavior is by design.

More Information

Steps to Reproduce Behavior

  1. Create a new project and add a command button (Command1) to a form.
  2. Add a reference to the Microsoft ActiveX Data Objects Recordset Library.
  3. Add the following code to the form:
       Private Sub Command1_Click()
    Dim cn As ADODB.Connection
    End Sub
  4. Run the project and click the command button. The error appears.
  5. Remove the reference, and add a reference to the Microsoft ActiveX Data Objects Library.
  6. Click the command button. The error does not appear.
NOTE:

  • Microsoft Access users will have to use ADODB.Connection to avoid confusion with the DAO Connection object.
  • If the Intellitype feature is turned on, you should notice that it does not show Connection as a valid object with the ADOR type library, but does with the ADODB type library. This is a good indication that you do not have the correct type library referenced.
  • This error can also occur when referencing objects in other type libraries that aren't referenced.
Properties

Article ID: 184609 - Last Review: Aug 4, 2008 - Revision: 1

Feedback