erroe 13... no coinciden los tipos por un recordset

_oktuvre_
10 de Noviembre del 2004
hola soy principiante en VB y estoy manejando base de datos en vb con access 97... el tema es que cuando cargo va por la linea:
Set RS = DB.OpenRecordset("xxx")
salta el error 13 , no coinciden los tipos...
RS esta declarada publica como recodrset, esta cargada tambien la base de datos...
borre la base de datos, la volvi a crear... nada
entre a las referencias de VB, cambie el DAO miles de veces... nada
o sea no se que pasa... por eso recurro a algun alma caritativa que me saque del barro

atte y gracias OKtuvre

nagash
10 de Noviembre del 2004
a eso no le falta un new para instanciar el objeto??

yo prefiero hacerlo asi

Option Explicit

'DECLARACION DE UN VARIABLE OBJETO DEL TIPO ADODB.CONNECTION
Public con_conexion As ADODB.Connection
Public rec_conexion As ADODB.Recordset


Public Sub ConectarBD()
'On Error GoTo error:
'SE INSTANCIA EL OBJETO CON AUTO DEL TIPO CONNECTION
Set con_conexion = New ADODB.Connection

'CONFIGURACION DEL CON_AUTO
con_conexion.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=BD"

'SE ABRE LA CONEXION
con_conexion.Open
'error:
' If Err.Number > 0 Then
' Err.Description
' Resume Next
' End If
End Sub

Public Sub DesconectarBD()

'SE CIERRA LA CONEXION
con_conexion.Close

'LIBERAR MEMORIA
Set con_conexion = Nothing

End Sub


Public Sub Ejecutar(strsql As String)
' On Error GoTo error:
Set rec_conexion = New ADODB.Recordset
rec_conexion.CursorLocation = adUseClient
rec_conexion.Open strsql, con_conexion
'error:
' If Err.Number > 0 Then
' MsgBox Err.Description
' Resume Next
'End If
End Sub


Christian Petersen
10 de Noviembre del 2004
En Referencias, agrega Microsoft ActiveX Data Objects 2.0 Library.

Atte,

Christian Petersen

laura
10 de Noviembre del 2004
a mi tambien me sucede ese error,, y tengo agregada esa ultima referencia tambien, y sigo con el mismo problema :(

Orlando
10 de Noviembre del 2004
La variable RS que es un recordset puede ser que la tengas declarada, pero que aún no exista como objeto en memoria. Esto puede ocasionar un error si la quieres usar. Para crearla antes de usarla puedes
hacerlo de 2 modos :

1 - Dim RS as new recordset
Set RS=DB.OpenRecordset(....)

2- Dim RS as recordset
Set RS=new recordset
Set RS=DB.OpenRecordset(....)

...no se si esto te puede valer. Saludos

eth0
10 de Noviembre del 2004
¿No tendrás definida RS como un Recordset de ADO e intentas asignarle un Recordset de DAO?

julian carrizo
14 de Febrero del 2012
Se que este tema es un poco viejo, pero llegue aqui porque tenia este mismo problema con los recordset y el error 13. Por suerte pude solucionarlo y lo quiero compartir. El problema que yo tenia es que tenia dos formularios. En el frm no principal es donde yo estaba intentando abrir la base de datos y donde habia declarado la database y el recordset como privadas (Dim). Mi solucion fue declararlos en el formulario principal como public.
Espero que le sirva a alguien

Soon Soon
25 de Marzo del 2013
Yo lo solucione cambiando en las refernecias Microsoft Activex Data Objects 2.8 Library por Microsoft Activex Data Objects 2.0 Library. Parece que el cambio de versiones afecta de alguna forma. En la nueva librería no se como hacerlo.
Saludos.