¿Es posible en una función DSuma añadir la función Nz?

En un formulario tengo un control independiente con la función DSuma con el siguiente origen de control: =DSuma("Importe";"conGastos";"FechaGasto=" & "FechaArqueo"). Cuando no hay registros en la consulta conGastos me devuelve un valor nulo y el resultado de los controles del formulario es nulo. ¿Se puede aplicar la función Nz a mi función DSuma? Lo he intentado pero obviamente no me ha dado resultado. No sé si he dado suficientes datos.

1 respuesta

Respuesta
1

Javier: Claro que se puede hacer. Lo que veo un poco raro es el final que tienes, pero si te funciona, nada que decir.

Ejemplos:

 =Nz(DSuma("Importe";"conGastos";"FechaGasto=" & "FechaArqueo");0)

=Nz(DSuma("Importe";"conGastos";"FechaGasto=" & "FechaArqueo");1)

Lo que hay después del ); final es el valor que tu quieres forzar. En éste caso yo he forzado "Cero" en la primera y "Uno" en la segunda:

Aquí te dejo el enlace de Microsoft, ya que verás que el valor que quieres forzar, no necesariamente ha de ser un Número, que en tu caso si que debe serlo porque es raro obligar a un valor Texto en la suma.

https://support.office.com/es-es/article/Funci%C3%B3n-Nz-8ef85549-cc9c-438b-860a-7fd9f4c69b6c 

Mis saludos >> Jacinto

Gracias Jacinto una vez más. Funciona bien, pero ahora tengo un conflicto con una línea de código de un campo "TotalPAX", que, cuando recibe el foco y el campo "FechaArqueo" es True, inserta el valor del campo "Gastos" e "Invitaciones" de los respectivos txtGastos y txtInvitaciones. Estos últimos tengo la función DSuma que funciona perfectamente. Ha sido ahora al poner Nz que me da error en el código del campo TotalPax.

Gracias Jacinto!!!

Este es el código que me falla después de poner Nz

Private Sub TotalPAX_GotFocus()

If IsNull(Me.FechaArqueo) Or Me.FechaArqueo = "" Then

MsgBox "Ha olvidado anotar la Fecha de Arqueo", vbCritical, "Aviso"

FechaArqueo.SetFocus

Else

Me.[Invitaciones].Value = Me.[txtInvitaciones].Value

Me.[Gastos].Value = Me.[txtGastos].Value

End If

End Sub

La verdad es que según yo lo veo, no hay ningún conflicto, salvo que lo que quieras conseguir sea otros valores, pero en tu código le dices que si la FechaArqueo tiene un valor, que te traslade a un "NombreControl" >> Invitaciones lo que haya en el cuadro de Texto TxtInvitaciones y que te traslade a un "Control" >> Gastos, lo que hay en TxtGastos y es lo que me comentas. No obstante si me comentas qué es cada uno miramos lo que sea adecuado.

De otro lado te comentaba que veía un poco rara la Expresión >>

=DSuma("Importe";"conGastos";"FechaGasto=" & "FechaArqueo") y sin haberla probado, yo usaría algo así, incluyendo el Nz

=Nz(DSuma("Importe";"ConGastos";"FechaGasto=#" & Format(Me.FechaArqueo; "mm/dd/yyyy") & "#");0)

Ya me contarás. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas