Problema con DSuma generador de expresiones access

Como están, tengo un problema en la generación de una función en el generador de expresiones en access.

El tema es así:

Tengo una tabla Bajas con los campos [Id I], [Fecha de retiro] y [Cantidad retirada] y tengo un formulario continuo dependiente de otra tabla (Insumos) llamado DetallesGeneralInsumos también con un campo [Id I] y con un Txt independiente. Las tablas bajas e insumos están relacionadas por el campo Id I. Lo que necesito hacer, y no se muy bien como, es que en el campo independiente del formulario me muestre la suma del campo [Cantidad retirada] en un periodo de un año para cada registro presente en el formulario, lo que hice (pero sin resultados) es agregar la siguiente fórmula en el origen del registro del campo independiente Txt

=DSuma("[Cantidad Retirada]","[Bajas]","[Bajas]![Id I] = Forms![DetallesGeneralInsumos]![Id I]_

AND [Bajas]![Fecha de retiro] Entre Fecha() Y AgregFecha(" Y ", -1, fecha())")

La primer parte funciona bien, es decir si escribo la función donde solamente me muestre la suma del campo cantidad retirada para cada Id I (es decir para cada registro), pero cuando quiero que me lo calcule en el intervalo de fechas ya no funciona.

1 respuesta

Respuesta
1

Si a la función AgregFecha le pones como intervalo "y", le estás indicando el día del año. Para que te reste el año, tienes que usar "yyyy" (o "aaaa" en la versión en español como es tu caso)

Inténtalo con esta expresión:

=DSuma("[Cantidad Retirada]","[Bajas]","[Bajas]![Id I] =" &  Forms![DetallesGeneralInsumos]![Id I] & "

AND [Bajas]![Fecha de retiro]>=" & AgregFecha("aaaa", -1, Fecha()))

Hola

Me dice que hay un error de sintaxis, que hat un operando sin un operador,

=DSuma("[Cantidad retirada]","[Bajas]","[Bajas]![Id I]=" & [Forms]![DetallesGeneralInsumos]![Id I] & "_

AND [Bajas]![Fecha de retiro]>=" & AgregFecha("aaaa",-1,Fecha())")

No encuentro donde esta el problema.

Gracias

Martin

Fíjate que la expresión que te puse yo no lleva la barra baja (_), mientras que la tuya sí la lleva, pero en un sitio incorrecto, pues debiera ir fuera de las comillas dobles, así:

=DSuma("[Cantidad retirada]","[Bajas]","[Bajas]![Id I]=" & [Forms]![DetallesGeneralInsumos]![Id I] & _

" AND [Bajas]![Fecha de retiro]>=" & AgregFecha("aaaa",-1,Fecha())")

De todas formas, si el DSuma lo pones como origen del control del cuadro de texto, no es necesario que le pongas la barra baja,

Y fíjate también en dejar un espacio en blanco entre las comillas dobles y la palabra AND.

Como estas, gracias por tu ayuda.

He probado con tu expresión pero me sigue diciendo lo mismo.

=DSuma("[Cantidad retirada]","[Bajas]","[Bajas]![Id I]=" & [Forms]![DetallesGeneralInsumos]![Id I] & " AND [Bajas]![Fecha de retiro]>=" & AgregFecha("aaaa",-1,Fecha())")

No se cual puede ser el error.

Saludos

Martin

Quitale las últimas comillas, las que están después del AgregFecha. Si así no te va, por la noche te doy otra alternativa, a ver si funciona de una vez...

Hola

No hay manera, sigue diciendo lo mismo.

Gracias

Me cansé de intentarlo con esa expresión, pues aunque consigo que no de error ninguno, no logro que haga bien los cálculos.

Por tanto, te presento otra solución:

1º/ Crea una consulta (yo la llamaré AuxSumas) con esta SQL:

SELECT Bajas.[Id I], Bajas.[Fecha de Retiro], Bajas.[Cantidad retirada], DateAdd("yyyy",-1,Date()) AS Limite
FROM Bajas
WHERE (((Bajas.[Fecha de Retiro])>=DateAdd("yyyy",-1,Date())));

2º/ En tu cuadro de texto independiente del formulario, le pones esta expresión:

=DSuma("[Cantidad retirada]","[AuxSumas]","[Id I]=" & [Formularios]![DetallesGeneralInsumos]![Id I])

Y ahora sí calcula bien y sin errores. Te dejo un archivo para que compruebes (en mi caso en la expresión tengo que separar los parámetros por punto y coma en vez de coma)

¡Gracias!

Gracias por la ayuda, Probé tu solución y funciona, y además encontré el problema por el cual no funcionaba mi función, el problema era en agregfecha, faltaban las comillas en el periodo de tiempo es decir AgregFecha("aaaa","-1", Fecha())

Gracias por todo

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas