Extraer el total de un Formulario desde otro Form cuando este puede estar sin apuntes.

Desde un Formulario he de extraer el Total de la suma de los Importes de otro Formulario y si este NO tiene movimientos me lo indique.

El Form que abro esta en Forma Transparente.

Utilizo esto para averiguarlo:

If IsNull(Forms!DUPLICADOSFACTURASCOMPROBAR!Total) Then

Me.Resultado="SIN APUNTES"

else

Me.Resultado="CON APUNTES"

end if

Pero me actúa saliendo siempre por el .. Else tenga o no tenga movimientos y no se como averiguar si esta realmente sin Apuntes.

2 respuestas

Respuesta
2

Al no ver como son los formularios, ni saber que significa formulario transparente hay que improvisar

¿Has probado con

If nz(forms!duplicados....!total)=0 then

Pero si estás en un formulario, por ejemplo, Facturas y NO está abierto el Duplicados, siempre se irá a la parte else, porque para la instrucción la parte If no existe

Por eso sería conveniente que pusieras una imagen, de si están abiertos a la vez, o si está Facturas abierto y Duplicados cerrado, etc.

Desde el Formulario 1 a través del Botón accedo al Formulario 2 y compruebo si el numero de Factura existe. Este no lo muestro al Operador (esta en forma oculta).

Si no existe el numero de factura le indico al Operado que puede contabilizar la Factura.

En el caso de que el numero de Factura exista ya Contabilizada le muestro el Formulario 2 donde puede ver los datos de la anterior contabilización.

Formulario: 1

Formulario: 2

De esta forma evito duplicidades en las contabilizaciones de Facturas.

Si necesitas más información dímelo y te lo mando.

Un saludo

En principio no necesitas el botón para nada, ni tampoco que el formulario2 esté abierto, ya que éste dependerá de alguna tabla o consulta( lo digo por la imagen. Mira te pongo una imagen del formulario Ventas, basado en la tabla Ventas, sólo para que veas un número de factura y el TotalFactura

En cualquier formulario, en cualquier sitio, si tengo un cuadro de texto al que por comodidad he llamado Numfactura y otro al que he llamado Totalfactura por la misma razón, escribo un número de factura

Puedes ver que el cursor aún está en NumFactura. Cuando pulso Enter, como ese número si está en la tabla Ventas

Vamos a suponer que pongo una factura, que no va a estar

Cuando pulso Enter

Y al aceptar abriría el formulario Ventas en un registro nuevo para anotar la factura. El código del evento Antes de actualizar del cuadro de texto Numfactura es

Private Sub NumFactura_BeforeUpdate(Cancel As Integer)
If Nz(DCount("*", "ventas", "numfactura='" & Me.NumFactura & "'")) >= 1 Then
TotalFactura = DLookup("totalfactura", "ventas", "numfactura='" & Me.NumFactura & "'")
Else
MsgBox "Operador, puedes contabilizar la factura", vbOKOnly + vbExclamation, "¡Ay de tí si no lo haces!"
DoCmd.OpenForm "ventas", , , , acFormAdd
End If
End Sub

Es decir, antes de "guardar" el valor, cuéntame si en la tabla Ventas hay algún registro en que su número de factura sea igual al que he escrito en el cuadro de texto. Si lo hay ponme el valor del campo TotalFactura  en el cuadro de texto y si no lo hay ponme el mensaje y luego abréme el formulario Ventas en un registro nuevo.

Respuesta
1

Primero que todo si el formulario no estuviera cargado obtendría error, entonces, ese no es el error, ahora, cuando dice "Transparente" entiendo que se refiere a "Visible" NO. He preparado este ejemplo.

FORMULARIO TOTAL

FORMULARIO RESULTADO CON FORMULARIO TOTAL VISIBLE


Si hago clic sobre el botón Ver Resultado asigna el resultado, ya que el campo "Total" del primer formulario está vacío o tiene cero (0), obtengo en el campo Resultado "SIN APUNTES".

Ahora, si el campo "Total" del primer formulario ingreso 1256 y hago clic sobre el botón Ver Resultado, en el campo resultado obtengo "CON APUNTES"

Código del formulario resultado

Si quiere el ejemplo puede solicitarlo a [email protected] favor anotar en el Asunto el nombre de la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas