SiInm sintaxis

Tengo una tabla con el campo edad y quiero agrupar por grupos de edad 0-1, 1-4,4-10,10-20 etc y veo que con esta función puedo lograr eso SiInm y hagola siguiente instrucción SiInm([generales]. [edad]<=1,"menor de 1 año,"mayor" )
Pero me marca no coinciden los tipos de datos en la expresión de criterios
Que es lo que estoy haciendo mal mi campo es numérico.
1

1 respuesta

Respuesta
1
La separación entre los argumentos es con punto y coma:
SiInm([generales].[edad]<=1 ; "menor de 1 año" ; "mayor" )
A ver si funciona.
Yo creo que este no es el camino correcto va de nuevo tengo un listado con tres campos idclave, edad y genero. Yo quisiera generar una consulta con los siguientes criterios
IdClave edad
                     1 a 5 5 10
                 H M H M
44 5 8 6 7
La idea es generar una consulta donde me cuente el numero de personas que están en el rango de 1 a 5 y así sucesivamente 5 a 10 10 a etc me diga cuantos son hombre y cuantos son mujeres y me los agrupe también por idClave. Si se podrá hacer esta consulta. Muchas gracias por su tiempo y ayuda. Saludos
Entiendo que IdClave es un campo clave que no se repite y que identifica a cada registro.
Puedes hacer una consulta, con campos, cada uno de ellos que calcule uno de los datos que planteas, con la siguientes función:
HombreEntre1a5: Dcont("idclave";"NombreTabla";"edad>= 1 AND edad<=5 AND genero='H'")
Lo repites para cada valor, cambiando las condiciones y tienes los números que pides.
PEro lo que no veo es, el primer valor de tu tabla, el 44, de donde sale. ¿Es la cuenta del total de registros?.
Creo que no me explique bien tengo mi base de datos
idClave edad genero
44 1 m
44 1 f
50 2 f
44 6 m
Así seria mi base de datos y yo quiero que me agrupe por Idclave el cual se puede repetir varias veces dependiendo de la edad de la persona IdClave me sirve para clasificar en este caso unos diagnósticos así que puede haber personas de 50 años que tengan en este caso idclave 44 por lo que necesito agrupar por Idclave y luego me haga el conteo por edad y me ponga a que genero corresponde. Así me quedaría una tabla como la siguiente:
IdClave edad
                     1 a 5 5 10
                 H f H f
44 1 1 0 1
50 1
Pues simplemente haz una consulta de totales sobre esa tabla, con un solo campo de la tabla original, IdClave que pondrás agrupar por.
Después, creas a su lado los campos calculados según la fórmula que te puse arriba, y ya esta.
Perdón por tanta molestia pero hice la consulta y logro lo siguiente obtener el conteo por edad y genero pero al momento te teclear la siguiente fórmula me marca error o no se donde poner la instrucción ese es mi error
DCont("[idcie]","age",[edad]>=1 Y "edad"<=5 Y "genero"="f")
idcie  ceuntaedad   genero
44 1 f
44 1 1
50 2 m
Copia la fórmula de mi respuesta (o la que tu pusiste y funciono) y modifícala, pero ten cuidado con las comillas, porque lo que tu estás poniendo en la tuya no es una condición valida para esa función. La expresión de condición es una variable de tipo texto, una string que formas, encandenando trozos de texto con valores de condición.
Copie la formula pero no funciono tuve q cambiar las ; por , y quedo asi
SELECT age.idcie, age.edad, age.genero
FROM age
GROUP BY age.idcie, age.edad, age.genero
HAVING (((age.idcie)=DCount("idcie","age","edad>= 1 and edad<=5 AND genero='H'")));
Es lo que me genera la vista SQL pero no pone ningún dato como resultado y si hay valores que cumplen con esta condición.
Y la fórmula que yo realize tome como referencia la sintaxis de la ayuda de access pero tampoco funciona.
Creo que estoy en el hoyo y muy confundido
En tu consulta aparecen los campos edad y genero. No tienen que estar. Solo el de idcie. Además el valor del campo calculado no tiene que estar en la lista de criterios como si fuera la condición a cumplir por idcie. Ese calculo es otro campo. Mira en una de mis respuestas que te ponía una etiqueta seguida de dos puntos y luego la fórmula:
HombreEntre1a5: Dcont("idclave";"NombreTabla";"edad>= 1 AND edad<=5 AND genero='H'")
Eso genera un nuevo campo. El resto de datos que querías obtener, serían nuevos campos, es decir, nuevas columnas.
Listo ya esta quedando ya me arroja los campos que necesito, pero ahora por ejemplo si un criterio cumple por ejemplo:
Si es un hombre de de 1 año y tiene como idcie 44
la consulta me arroja lo siguiente
IDcie Hombre de 1 a 5
44 1
80 1
100 1
120 1
Debiendo ser que solo debe ponerme en el 44 y en los demás IDcie debe ser 0
HombreEntre1a4: DCont("idcie","age","edad>=1 AND edad<=4 AND genero='M'")
Así quedo la instrucción son doce tipos de rangos
Saludos
Vale. Entendí mal lo que significaba idcie.
Entonces añade una condición más:
HombreEntre1a4: DCont("idcie","age","edad>=1 AND edad<=4 AND genero='M' and idcie='" & idcie & "'")
A ver si acertamos.
Pego la instrucción
 HombreEntre1a4: DCont("idcie","age","edad>=1 AND edad<=4 AND genero='M' and idcie='" & [idcie] & "'") me pone los corchetes automticamente
y me genera una consulta
Idcie    hombrede 1a 4
44        #Error 
80        #Error
100     #Error
Si me posiciono en #Error no coinciden los tipos de datos en la expresión de criterios
¿IdCie es numérico o de texto?
Si es numérico:
HombreEntre1a4: DCont("idcie","age","edad>=1 AND edad<=4 AND genero='M' and idcie=" & [idcie])
Si es texto, es lo que te había puesto
:-) Gracias parce que ya quedo.
Si tengo 12 rangos para hombre y 12 para mujer son 24 campos pero access me da solo 17 campos voy a intentar hacerlo por instrucción sql si no voy a tratar de hacer dos consultas pero seria más estético hacerlo en una.
Access te da más campos. Basta con que le des a insertar columna tantas veces como sea necesario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas