Excel – VBA – You receive a "Type mismatch" error when you run the OpenRecordset method

If you dimension an object as a Recordset and then set that object to databaseobject.OpenRecordset(source), you may receive the following error message:

Run time error '13': Type mismatch

Cause

If your project contains references to both the Data Access Objects (DAO) library and the ActiveX Data Objects (ADO) library, you may see multiple Recordset entries in the list when you dimension the Recordset object. This error occurs when you list the ADO library with a higher priority than the DAO library in the References dialog box, regardless of which Recordset entry you select from the list.


Resolution

If you need only the DAO Recordset object, make sure that the reference for the DAO object library has a higher priority in the References dialog box, or clear the reference to Microsoft ActiveX Data Objects.

dscsdfkkfoww


If you must reference and use both DAO and ADO Recordset objects, dimension the objects explicitly as follows:

   Dim adoRS As ADODB.Recordset
   Dim daoRS As DAO.Recordset

Steps to reproduce the behavior

  • Start Visual Studio. The New Project dialog box appears.
  • Click Open. The Form1 form appears.
  • Right-click the Form1 form, and then click View Code. The Project1 - Form1 (Code) window appears.

Paste the following code in the Project1 code page:

Dim dbs AS Database
Dim rs AS Recordset  ' When you press the spacebar after "AS," the
                           ' list box includes multiple Recordset entries.
                           ' Pick any Recordset item, or type "Recordset."
Private Sub Form_Load()
Set dbs=OpenDatabase(dbname)
Set rs=dbs.OpenRecordset(source)  ' The error occurs when this line
                                        ' of code executes.
End Sub
  • On the Project menu, click References. The References - Project1 dialog box appears.
  • Click Microsoft DAO 3.x Object Library, click Microsoft ActiveX Data Objects 2.x Library, and then click OK.

NOTE: Make sure that the ADO library has the higher priority in the References dialog box list above the DAO library.

  • On the Run menu, click Start to run the program. You may receive the error message that is mentioned in the "Symptoms" section.
SOURCE

LINK (Support.microsoft.com)

LANGUAGE
ENGLISH