Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/08/2008, 11:23
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Comparar rangos de numeros en campo string

Cita:
Iniciado por Desfo Ver Mensaje
Saludos.

Necesito comparar rangos de numeros en una consulta en Access, el problema es que el campo que los contiene es de tipo String (ya que el campo tambien puede contener caracteres). He probado a convertirlo con CInt(), pero no me funciona correctamente:

Select DISTINCT PERSONAS.PK_Victima, Fecha, PERSONAS.*, PK_Acc, Referencia, Cood_Long, Cood_Lat from PERSONAS, ACC where (DateDiff('y','01/01/2007',fecha)>=0) and (DateDiff('y','26/08/2007',fecha)<=0) and PK_Acc=PERSONAS.FK_Accidente and Edad >= CInt('45') and Edad <= CInt('55') order by Fecha, Referencia

y me incluye "5" en el rango de 45-55. Tampoco me deja hacer:

Select DISTINCT PERSONAS.PK_Victima, Fecha, PERSONAS.*, PK_Acc, Referencia, Cood_Long, Cood_Lat from PERSONAS, ACC where FK_Lesividad=1 and (DateDiff('y','01/01/2007',fecha)>=0) and (DateDiff('y','26/08/2007',fecha)<=0) and PK_Acc=PERSONAS.FK_Accidente and CInt(Edad) >= 45 and CInt(Edad) <= 55 order by Fecha, Referencia

"No coinciden los tipos de datos en la expresion de criterios"

¿Alguien sabe como solucionarlo?

Gracias.

dos apuntes:
1) según creo, debes usar la función Val y no CInt para eso que quieres. Val(edad) te sacará el primer número y no dará error aunque tengas caracteres alfabéticos en el campo.
2) Usa between:
and Val(edad) between 45 and 55