Error sintaxis en Dsum ParFecha

Tengo una tabla que se llama "Master" donde tengo los campos "Fecha" y "Real" (los valores en "Real" son valores monetarios)

Quiero hacer una consulta que me muestre, agrupando por año, mes y suma del Real y el acumulado.

Ejemplo:

Año____Mes___SumaDeReal___Acumulado

2016 Enero 600€ 600€

2016 Febero 500€ 1.100€

He visto este articulo de ayuda de microsoft, pero no me funciona:

https://support.microsoft.com/es-es/kb/208714 

Os explico hasta donde he llegado y los pasos que he seguido:

1- He creado la consulta donde la primera columna agrupa por año y la he llamado "Año"

2- La segunda columna agrupa por mes y la he llamado "Mes"

3- La tercera columna suma los valores "Real" de la tabla "Master" y la he llamado "Suma"

Ahora la 4a columna quiero que sume el campo "Suma" si los valores en tanto lo campos "Año" y "Mes" son menores o iguales que el registro actual que la consulta.

He puesto en esta 4a columna esto:

Acumulado: DSuma("Real";"Master";ParcFecha('mmmm';[SumaDeReal])<=' & [Mes] & " And  ParcFecha('aaaa', [SumaDeReal])<=" & [Año] & "")

Pero me sale un error: La expresion que ha especificado tiene una sintaxis no valida. Es posible que haya especificado un operando sin un operador.

Y aqui me he quedado...

1 Respuesta

Respuesta
1

Prueba así:

Acumulado: DSuma("Real";"Master";"ParcFecha('mmmm';[SumaDeReal])<='" & [Mes] & "' And  ParcFecha('aaaa', [SumaDeReal])<=" & [Año])

Fíjate bien en cómo colocas las comillas simples y dobles.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Revisando tu fórmula, hay algo que no me cuadra: no puedes sacar una fecha de un campo moneda como es SumaDeReal. Tu expresión debería ser:

Acumulado: DSuma("Real";"Master";"ParcFecha('mmmm';[Fecha])<='" & [Mes] & "' And  ParcFecha('aaaa', [Fecha])<=" & [Año])

Yo lo haría así:

1ª columna:

Año: Año(Fecha) y "Agrupar por" en Total

2ª columna:

Mes: NombreMes(Mes(Fecha)) y "agrupar por" en Total

3ª columna:

Suma: Real y "Suma" en Total

4ª columna:

Acumulado: DSuma("Real";"Master";"ParcFecha('yyyymm',Fecha)<=" & [Año] & [Mes]) y "expresión" en total

Discupa, que metía la gamba en la última expresión:

Acumulado: DSuma("Real";"Master";"Format(Fecha,'yyyymm')<=" & Año([Fecha]) & Format(Mes([Fecha]);"00"))   y "expresión" en total.

Gracias, pero debe de haber algo mal porque me sale este error:

Su consulta no incluye la expresion especificada 'DSuma("Real";"Master";"Format(Fecha,'yyyymm')<=" & Año([Fecha]) & Format(Mes([Fecha]);"00"))' como parte de una funcion de agregado...

No tengo ni idea que significa esto :S

En la fila total ¿le pusiste "Expresión"?

Te adjunto una BD en la que comprobé que funciona, para que veas cómo es:

http://www.filebig.net/files/ePpWVTNB7Z 

El campo Acum de la consulta, usa la expresión que intentabas originalmente. Verás que no funciona correctamente al cambiar de año (dentro de un mismo año sí acumula bien)

El campo Acum2 es el que lleva la expresión que te indico en el último mensaje. A mí me funciona bien.

Verás que además, le aplico la función CMoneda() para que devuelva los valores en formato moneda, y puedas operar luego con ellos si te hace falta.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Muchas gracias Sveinbjorn!!

Si que funciona!!

Ahora con esto puedo hacer la base para arreglar el problema que tenia en esta pregunta:

Suma continua en informe access 

Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas