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.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.