Compara dos campos de un formulario en access

Amigos necesito realizar una comparación de dos campos de un formulario y que me entregue un mensaje de alerta cuando estos sean diferentes.

Tengo un campo llamado Total Factura y otro campo llamado Total, este ultimo me da el monto total de los artículos ingresados a la Bd.(Subformulario) entonces la intencion es que me realice una comparacion entre estos y en caso de que sean diferentes me salga un mensaje señalando la diferencia la cual esta en otro campo, asi no me permita guardar los registros hasta que estos coincidan.

3 Respuestas

Respuesta
1

Como para un uso normal no tiene sentido comparar totales cuando:

.- Uno de los totales aun esta creándose
.-El otro total es resultado de un total que existirá en un futuro próximo (cuando se finalice con la entrada de registros para esa factura)

Se ha de suponer que se esta revisando la facturación para localizar incongruencias (errores, perdidas de datos o problemas con el inventario del almacén).

Y para ese análisis forense habrá que tener referencias concretas para (por ejemplo) evitar cuadrar el almacén usando salidas posteriores a las fechas de la factura o albarán.

Es probable que el planteamiento sea erróneo (solo se dispone de los datos iniciales y estos no son concluyentes), si se aportan datos que le den sentido a la búsqueda se podrán aportar soluciones (algunas ya implementadas en gestiones de contabilidad).

Respuesta
1

Depende desde donde se haga el cálculo:

1. Desde el subformulario

  Dim dif as double

    dif= Me.Parent![Total Factura]-Me.Total

   IF  dif<>0 then

        Me.campoSub=dif

   END IF

2. Si es desde el formulario principal, sería algo como:

   Dim dif as double

  dif= Me.[Total Factura]-Me.nombreSubformulario!Total

     IF  dif<>0 then

        Me.campo_formularioPrincipal=dif

   END IF

Esta es una idea.

Respuesta

Una idea para evitar comparaciones. Tengo un formulario Ventas con un subformulario DetalleVenta basados ambos en las tablas del mismo nombre y relacionados por Idventa.

En el subformulario elijo un producto y puedes ver que el cursor todavía está en el control Cantidad. Cuando pulso Enter, en el cuadro de texto Importe del formulario me aparece la suma acumulada de los subtotales del subformulario

Elijo otro producto

Y cuando pulso Enter

Y así no necesito comparar

En este caso, el código del evento Después de actualizar del cuadro de texto Cantidad es

Private Sub Cantidad_AfterUpdate()
DoCmd.SetWarnings False
Subtotal = Precio * Cantidad
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Importe = DSum("subtotal", "detalleventa", "idventa=" & Me.IdVenta & "")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas