No coinciden los tipos de datos en la expresión de criterios
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.
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.
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!
"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!
