Error con Dsuma en access

Tengo un error en con un formulario que estoy generando.

Se supone que suma valores específicos en cuadros de texto para darme totales de acuerdo a un filtro entre fechas que se introducen en el mismo formulario a unos cuadro de texto.

Explico mis archivos:
Tabla: Cat_Egresos | Los campos que utilizo aquí únicamente son
Cve_Tipo , Cve_Concepto, Monto y Fecha
Lo que es Cve_Tipo son números del 9 al 25 y Cve_Conceptos del 20 al 55.
Monto es precio gastado y fecha la fecha cuando se realizo el pago.

Mi formulario se llama Egresos_Informe

TxtFecIni es el cuadro de texto donde se pone la fecha inicial y TxtFecFin es le cuadro de texto con la fecha final para el filtro.

Ya había echo este ejercicio con Cve_Tipo con cada uno de los valores y todo me había sumado bien.

Utilice la siguiente fórmula:

=SiInm(DSuma("[Monto]","[Egresos]","[Cve_Tipo]='9'" & " And  [FECHA] BETWEEN forms!Egresos_Informe![TxtFecIni] AND forms!Egresos_Informe![TxtFecFin] ")<>'0',DSuma("[Monto]","[Egresos]","[Cve_Tipo]='9'" & " And  [FECHA] BETWEEN forms!Egresos_Informe![TxtFecIni] AND forms!Egresos_Informe![TxtFecFin] "),'Sin Datos')

(Utilice el Silnm por que cuando no aparecían datos no querían que se mostrara en "0" si no con la leyenda "Sin Datos")

Ahora intento hacer lo mismo con Cve_Conceptos utilizando la siguiente fórmula en otro formulario llamado Agregado_Costo y con los cuadros de texto llamados TxtFecIni11 Y TxtFecFin11.

La fórmula es la siguiente:

=SiInm(DSuma("[Monto]","[Egresos]","[Cve_Concepto]='20'" & " And  [FECHA] BETWEEN forms!Agregado_Costo![TxtFecIni11] AND forms!Agregado_Costo![TxtFecFin11] ")<>'0',DSuma("[Monto]","[Egresos]","[Cve_Concepto]='9'" & " And  [FECHA] BETWEEN forms!Agregado_Costo![TxtFecIni11] AND forms!Agregado_Costo![TxtFecFin11] "),'Sin Datos')

Y este ejercicio con Cve_Concepto me da error, pero si llego a poner algún valor abajo del 20 (1 al 19) me arroja la suma en "0" ceros...

Me gustaría saber en que estoy fallando o Una forma de sumar según ciertos valores en access 2016.

1 respuesta

Respuesta
1

Te digo lo que haría. Si tengo el formulario, lo pongo como continuo para que veas que suma bien. Elijo el tipo y escribo una fecha inicial y una final

Es decir, como las fechas son "correctas" en el cuadro de texto resultado me pone las suma entre esas fechas. Por el contrario, si pongo unas fechas en las que no hay "movimientos"

El código del evento Después de actualizar del cuadro de texto Final es

Private Sub Final_AfterUpdate()
Resultado = DSum("nz([monto])", "egresos", "tipo=" & Me.Etipo & " and fechaegreso between forms!egresos!inicial and forms!egresos!final")
If IsNull([Resultado]) Then
Resultado = "Sin datos"
End If
End Sub

Le pongo la función Nz al control Monto, por si hay algún día pero no se ha puesto monto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas