Evitar el error cuando el campo leído de otro Formulario es nulo

Tengo un formulario Principal llamado VENTAS y extraigo de otro Formulario ENTREGAS el total para calcular la diferencia con el campo Pendiente de Pago de la venta.

Si no existen Entregas a Cuenta el campo TOTALENTREGAS se queda como Nulo produciéndome este error:

¿Cómo puedo evitar este error en las ventas que no tienen ninguna Entregas a Cuenta?

2 respuestas

Respuesta
1

No se como son los controles, si texto o numéricos, pero tienes la función Nz que transforma los nulos en lo que quieras. Por ejemplo

Texto0=nz([texto2])  si texto2 es nulo Texto0=0

Texto0=nz([texto2],4), si texto2 es nulo texto0=4

Texto0=nz([texto2],"Hola") si texto2 es nulo texto0=Hola

Texto0=nz([texto2],"Adios, muy buenas") y eso es lo que digo

Para recoger el calculo desde el Formulario Principal abro otro formulario: ALBARANESLINEASVENTASPAGADAS que recoge los apuntes que están pagados.

He utilizado esta instrucción basándome en los ejemplos que me has mandado:

Me.TOTALCOBRADO = Nz([Forms!ALBARANESLINEASVENTASPAGADAS!Total])

y me esta dando este error:

Hay cosas que no entiendo. Si el cliente( o proveedor) ha pagado las ¿facturas? El campo Importe tendrá valor, por tanto no daría lugar a usar NZ. Por otro lado, si abres el formulario Albaranes... desde otro formulario, cuando el de albaranes se abra, el objeto activo es éste, por tanto no puedes decirle al control TotalCobrado, que sea igual a... En todo caso, se lo tienes que decir en el formulario que se abre. Por ejemplo, si tengo el formulario Albaranes..., más o menos como el de la imagen

Verás que el control Total no hace la suma ya que el registro de en medio es nulo. Le he añadido un botón de comando en plan didáctico.

Supongamos que tengo el formulario Proveedores, donde tengo un control llamado Total,

Si pulso el botón Abrir...

Se abre en vista diálogo en formulario Albaranes, donde puedes ver que Total es nulo. Si pulso su botón

Porque le he dicho que si el control Total es nulo, el total de formulario sea igual a 333.

Pero si Total de albaranes tuviera valor

Pero para que tenga valor tengo que decirle que me transforme los nulos del formulario Albaranes... en ceros y cuando pulso el botón

El código del formulario Albaranes es

Private Sub Comando11_Click()
If CurrentProject.AllForms("proveedores").IsLoaded Then
If IsNull([Total]) Then
Forms!proveedores!Total = Nz([Total], 333)
ElseIf Not IsNull([Total]) Then
Forms!proveedores!Total = Me.Total
End If
End If
End Sub

Y en el origen de control del control Total tengo puesto

=DSuma("nz([importe])";"albaraneslineaventas";"idproveedor=forms!albaraneslineaventas!idproveedor")

Por lo que ya no daría pié a que Total fuera Nulo

En mi opinión es excesivamente complicado esto cuando se puede hacer muchísimo más sencillo usando Dsum("nz([importe])",....

Si quieres, repito, si quieres, haz una copia de la tabla(s) y formulario(s) involucrados, con tres o cuatro registros inventados y me la mandas a [email protected] y la miro. Así podría aconsejarte mejor.

Si lo haces, en el asunto del mensaje pon tu alias Jobe(me parece que ya tenías mi correo), ya que si no sé quien me escribe ni los abro.

Respuesta
1

Usa la función nz

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas