No coinciden los tipos de datos en la expresión de criterios

borjayk
30 de Abril del 2004
He tenido problemas tratando de consultar una base de datos en Access 2003 desde un programa en VB6 SERVICE PACK 6 MDAC 2.8 OS Windows XP Pro. El error que sale es (NO COINCIDEN LOS TIPOS DE DATOS EN LA EXPRESION DE CRITERIOS,codigo de error -2147217913(80040e07)).

La sentencia SQL del .CommandText es:
SELECT handicap
FROM tablaHandicap
WHERE
indiceSup > CDbl(txtIndice.Text)
AND
indiceInf < CDbl(txtIndice.Text)

donde indiceSup e indiceInf están definidos en la base de datos como tipo Doble.

También he intentado almacenando
CDbl(txtIndice.Text) en una variable tipo Doble y pasando esa variable directamente en la consulta pero no funciona. La única solución me la dió un amigo que trabaja con C++ Builder y tiene el mismo problema con Access: Pasar el tipo de datos de Doble a String en la db y en el programa. Esa táctica compiló correctamente pero me produce errores al comparar las cadenas; debería devolver un solo registro pero devuelve varios (3 y 30 o 2 y 20, etc...).

Agradezco alguna idea.

Angel
30 de Abril del 2004
lo que puedes hacer es esto:
"SELECT handicap
FROM tablaHandicap
WHERE
((indiceSup > " & txtIndice.Text & ")
AND
(indiceInf < " & txtIndice.Text & "))"

necesitas tanta precision?
son 8 bytes...

de lo unico que te tienes que preocupar es que te metan numeros y que no supere el rango double...
nada mas...
creo que asi te tendria que funcionar....
porque necesitas un cast...

controla si esta en el rango antes de ejecutar la propia consulta no en la consulta

salu2!