Trabajos condicionados con fechas en campos calculados

Hola me siento muy afortunado por encontrar este sitio que me ha servido de mucho para aprender de Access, pero ahora me encuentro aproblemado y pido su experticia y buena voluntad.
Estoy trabajando en una consulta ("frecu"), que tiene estos campos: "fecha", "suceso", donde el campo "suceso" solo puede tener estos datos "remplazo", "partida", "detención"y un campo calculado llamado "diferencias"
Quiero obtener otro campo calculado que cuando el campo [suceso] ="detención" sume el valor generado por el campo [Diferencias](que también es un campo calculado) al valor anterior de este campo y cuando [suceso] = "partida" repita el valor anterior de este campo y cuando [suceso]= "remplazo" este adquiera el valor "0"
Para esto tengo:
acumulador: SiInm([suceso]="Detención",nz(DÚltimo([acumulador]
,[frecu]),0)+nz([Diferencias],0),SiInm([suceso]=
"Partida",nz(DÚltimo([acumulador],[frecu]),0),0))
El problema es que me manda este error "referencia circular causada por el alias 'acumulador' en la lista SELECT de la definición de la consulta.
De ante mano muchas gracias.

1 respuesta

Respuesta
1
Lo poco que entiendo es que no puedes usar la variable acumulador al mismo tiempo que la defines, sugiero ver la siguiente liga:
Gracias por responder.
Me explico mejor.
La finalidad de este código es generar una frecuencia de cambio para los repuestos de una maquina, a partir de una tabla en access llamada "historial" que tiene estos campos:
-Fecha- -suceso- -tag- -repuesto-
Y en base a esta tabla ejecuto una consulta llamada "Frecu" para seleccionar los datos del repuesto en 1 equipo especifico y para calcular la frecuencia de cambio del repuesto.(El campo [suceso] solo puede ser: "partida","detencion","cambio").
Ya tengo la manera de encontrar la diferencia entre días según el suceso. Y calcular la duración entre las detenciones.
Lo logro colocando este código:
Diferencias:SiInm([suceso]="Detención",DifFecha("d",DÚltimo("fecha","frecu","fecha<#" & [fecha] & "#"),[fecha]),"0")
Lo que me falta lograr es un campo calculado en esta consulta que sume las diferencias anteriones entre los valores de [suceso] = "cambio"
Lo quiero decir es: que entre "cambio" y "cambio" me de la suma del campo [diferencias].
Se que se puede lograr con esta sentencia
Suma: (Select Sum(diferencias) FROM [frecu] as Temp WHERE [Temp].[suceso]< [NombredeTuTabla].[PiqNº]+1)
Pero no lo entiendo muy bien
Espero que este más claro.
Estoy revisando la web que me diste.
Muchas gracias
Y tomando como pauta lo último que me comentas porque no realizas el proceso de generar la primer consulta y la almacenas en una tabla de paso, solamente los datos obtenidos y de ahí aplicas la segunda suma de calculo que debe de ser más fácil de implementar...
Por cosa de tiempo y que para la determinación de la frecuencia requería de un criterio muy amplio, me rendí y solo deje un lista que debe ser analizada por el personal, que debe determinar que dato es representativo según la causa de este
Muchas gracias por la repuesta
El foro que me indicaste encontré otras soluciones para otros problemas gracias muy útil
= creo que hay un avanze sobre este tema
Ojala a alguien le sirva
Adiós

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas