Recibe un error "No coinciden los tipos" cuando ejecuta el método OpenRecordset

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 181542
Síntomas
Si un objeto como un conjunto de registros de la dimensión y, a continuación, establecer ese todatabaseobject del objeto. OpenRecordset(source), puede recibir el siguiente errormessage:
Tiempo de ejecución '13': no coinciden los tipos
Causa
Si el proyecto contiene referencias a la biblioteca de objetos de acceso a datos (DAO) y la biblioteca de objetos de datos ActiveX (ADO), puede ver entradas de multipleRecordset en la lista cuando la dimensión del objeto Recordset . Este error se produce cuando la lista de la biblioteca de ADO con una biblioteca DAO primitiva de mayor prioridad en el cuadro de diálogo referencias , independientemente de qué Recordsetentry seleccione de la lista.
Solución
Si necesita sólo el objeto Recordset DAO, asegúrese de que la referencia de la biblioteca de objetos DAO tiene mayor prioridad en el cuadro de diálogo referencias , o desactive la referencia a Microsoft ActiveX Data Objects.

Si debe hacer referencia y utilizar los objetos DAO y ADO Recordset , dimensión los objetos explícitamente como sigue:
   Dim adoRS As ADODB.Recordset   Dim daoRS As DAO.Recordset				
Más información

Pasos para reproducir el comportamiento

  1. Inicie Visual Studio. Aparecerá el cuadro de diálogo Nuevo proyecto .
  2. Haga clic en Abrir. Aparece el formulario Form1.
  3. Haga clic en el formulario Form1 y, a continuación, haga clic en Ver código. El Project1 - Form1 (código) BA.
  4. Pegue el código siguiente en la página de código Project1:
    Dim dbs AS DatabaseDim 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
  5. En el menú proyecto , haga clic en referencias. Aparecerá el cuadro de diálogo referencias - Project1 .
  6. Haga clic en Microsoft DAO 3.x biblioteca de objetos de, haga clic en Microsoft ActiveX Data Objects 2.x Libraryy, a continuación, haga clic en Aceptar.

    Nota: Asegúrese de que la biblioteca de ADO tiene la mayor prioridad en la lista del cuadro de diálogo referencias por encima de la biblioteca de DAO.
  7. En el menú Ejecutar , haga clic en Iniciar para ejecutar el programa. Puede recibir el mensaje de error que se menciona en la sección "Síntomas".
Error de coincidencia de DAO OpenRecordset tipo error 13 en tiempo de ejecución

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 181542 - Última revisión: 01/31/2016 23:55:00 - Revisión: 5.0

Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft ActiveX Data Objects 2.7, Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Access 2000 Standard Edition

  • kbprb kbmt KB181542 KbMtes
Comentarios