ERROR: No coinciden los tipos de datos?? =S

Edgar
22 de Julio del 2004
Hola colega, en esta oporunidad estoy tratando de conectar mi base de datos la cual esta echa en access97 pero no puedo realizar dicho conección porque me muestra el siguiente error:'-214721900(8004e14)' en tiempo de ejecución: No coinciden los tipos de datos en la expresión de criterios y de verdad he intentado varias maneras y me sigue mostrando el mismo error. Aqui tengo el código para ver si me puedes orientar amigo:

Sub Coneccion()
Set Cnn = New Connection
Set Rcs = New Recordset

Cnn.Open ("PROVIDER=MICROSOFT.JET.OLEDB.3.51; DATA SOURCE=" & App.Path & "VZLA3.MDB")

Rcs.Open "select * from vnz3 where cedula = '" & cedula & "'", Cnn <<Aqui es donde me señala el error>>

MsgBox " La Coneccion fue exitosa ", vbInformation, "Coneccion"

Rcs.Close

De verdad que agradezco tu ayuda, la base de datos contiene 3 millones de registros y la estoy cambiando de DAO a ADO ya que necesito manejar en mi sistema los data reports, en DAO utilizo el método seek pero voy a utilizar otro método en ADO para poder ejecutar eficazmente mi aplicacón. Agradezco de tu ayuda amigo para ver en donde es que estoy fallando.. Gracias

programador666
22 de Julio del 2004
Simplemente chequea si el tipo de dato de la variable cedula es distinta al al campo cedula del Recordset.

Veo que segun la busqueda, el dato del recordset es tipo Texto(Text), ¿es asi? ¿no sera de otro tipo?

Tambien este error puede pasar si se deja vacia la variable cedula.

semperfimxl
22 de Julio del 2004
Dado que estas cambiando de DAO a ADO, deberias verificar que en Referencias en tu proyecto solo tengas seleccionado "Microsoft Active Data Objects" y no tengas seleccionado "Microsoft DAO ..." a la vez...

En caso de que tengas los dos, entonces asegurate que el ADO tenga la prioridad (en la ventana de Referencias, selecciona el ADO y con las flechas de prioridad, muevelo hacia arriba para que quede antes que DAO)...

Otra forma de asegurarte que el Recordset que estas utilizando es de ADO y no de DAO (si tienes ambas seleccionadas en Referencias), es especificarlo en tu codigo... en lugar de

Set Rcs = New Recordset

utiliza
Set Rcs = New ADODB.Recordset ( o lo que corresponda segun el ADO que uses) ...

Los recordsets de DAO y de ADO son diferentes y esto puede estarte causando el problema...