Microsoft KB Archive/181542

= You receive a "Type mismatch" error when you run the OpenRecordset method =

Article ID: 181542

Article Last Modified on 1/12/2006

-

APPLIES TO


 * Microsoft Visual Basic 5.0 Enterprise Edition
 * Microsoft Visual Basic 6.0 Enterprise Edition
 * Microsoft ActiveX Data Objects 2.7
 * Microsoft ActiveX Data Objects 2.1 Service Pack 2
 * Microsoft ActiveX Data Objects 2.5
 * Microsoft ActiveX Data Objects 2.6
 * Microsoft Visual Basic 5.0 Learning Edition
 * Microsoft Visual Basic 6.0 Learning Edition
 * Microsoft Visual Basic 5.0 Professional Edition
 * Microsoft Visual Basic 6.0 Professional Edition
 * Microsoft Access 2000 Standard Edition

-



This article was previously published under Q181542



SYMPTOMS
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.

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.</li> On the Run menu, click Start to run the program. You may receive the error message that is mentioned in the "Symptoms" section.</li></ol>

Additional query words: OpenRecordset DAO mismatch run time error 13 type

Keywords: kbprb KB181542

-

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

© Microsoft Corporation. All rights reserved.