¿Como crear un campo calculado igual a cero?

Me gustaria saber que proceso llevar a cabo para que el resultado de un campo depende del valor de otro campo, es decir:

Tengo un formulario en donde registro los datos de pasajeros. Tengo un campo ValorPasaje, CantidadPasajerosAdulto, CantidadPasajerosNiños, SubTotal1, SubTotal2 y Total

SubTotal1 es igual a ValorPasaje x CantidadPasajerosAdultos

SubTotal2 es igual a ValorPasaje x CantidadPasajerosNiños

Total es igual a SubTotal1 + SubTotal2

La cuestión es que me gustaría condicionar el campo Total para que su resultado sea CERO cuando el valor ingresado en el campo CantidadPasajerosNiños sea CERO, es decir algo como:

Si CantidadPasajerosNiños es igual a cero Total es igual a cero.

Saludos...

1 respuesta

Respuesta
2

Leo: No sé que eventos tienes para el cálculo del Total, por tanto te recomiendo que programes el después de Actualizar de cada uno de los controles >> CantidadPasajerosAdultos y CantidadPasajerosNiños

Algo así:

Private Sub CantidadPasajerosNiños_AfterUpdate()

If IsNull(Me.Subtotal2) Or Me.SubTotal2 = 0 Then

Me.Total = 0

End If

End Sub

Y si lo necesitas, lo mismo en el AfterUpdate del CantidadPasajerosAdultos

O bien en el lostFocus. Un saludo >> Jacinto

Leo: Estaba repasando la respuesta y creo que pensando en los subtotales, hay una confusión.

Febería ser:

Private Sub CantidadPasajerosNiños_AfterUpdate()

If IsNull(Me.CantidadPasajerosNiños) Or Me.CantidadPasajerosNiños = 0 Then

Me.Total = 0

End If

End Sub

y en el AfterUpdate del otro Control:

Private Sub CantidadPasajerosAdultos_AfterUpdate()

If IsNull(Me.CantidadPasajerosAdultos) Or Me.CantidadPasajerosAdultos = 0 Then

Me.Total = 0

End If

End Sub

Un saludo >> Jacinto

gracias por responder Jacinto!

Aun no logro hacer funcionar ese código.

Sabes como llevar ese código que me diste al generador de expresiones, lo que necesito es que SI en el campo (CantidadPasajerosNiños) se ingresa el valor CERO, automaticamente el campo SubTotal1 cambie a CERO. 

Disculpa pero no logro solucionar el inconveniente.

Leo: Pones el Formulario en vista de diseño, señalas el control >> CantidadPasajerosNiños >> Muestras la Ficha de Propiedades >> Vas a la pestaña >> Eventos >>Después de Actualizar, y a la derecha hay un botón con tres puntos >> Al pulsarlo te aparece un Formulario pequeño emergente con tres posiciones >> Elige la última >> Por cádigo >> Se te abrirá el Editor de VBA con dos líneas Private Sub CantidadPasajerosNiños_AfterUpdate()

End Sub

Entre esas dos líneas pones:

If IsNull(Me.CantidadPasajerosNiños) Or Me.CantidadPasajerosNiños = 0 Then

Me.SubTotal1 = 0

Me.Total = 0

End If

Ahora bien, como no sé cómo haces el Calculo de SubTotal1, al cambiar de registro, puede que te restituya el valor de nuevo, con lo que Total te volverá al valor de SubTotal1.

Si puedes colgar la BD en algún servidor de la red, para mí o para otro será mejor ver el conjuto.

Un saludo >> Jacinto

Hola Jacinto, gracias por responder.

El proceso que citas anteriormente lo he llevado a cabo pero me genera ERROR al momento de regiistrar  y/o avanzar por el formulario. Quizá creo que el error se debe a que el campo SubTotal1 es un campo calculado cuyo resultado se muestra automaticamente debido a una regla de validación que establecí para ese campo SubTotal1. 

Practicaente SubTotal1 es el resultado de dividir ValorPasaje en 2.... en otras, SubTotal1 es el valor del pasaje que pagaría el niño cuyo valor es la mitad del campo ValorPasaje y logicamente multiplicado por la CantidadPasajerosNiños, es decir: 

SubTotal1= ValorPasaje * CantidadPasajerosNiños/2    ---------> (Mitad para Niños) 

SubTotal2= ValorPasaje * CantidadPasajeroAdultos       ---------> (Completo para Adulto) 

Gracias.... Espero me hallas entendido.

Leo: Entiendo lo que me comentas, pero cuando te decía "... como no sé cómo haces el Calculo de SubTotal1...", no me estaba refiriendo al Cálculo matemático.

Me estaba refiriendo a si lo hacías:

a.- Directamente sobre el Control

b.- Con código de VBA en algún Evento del Formulario o Control

c.- En una consulta que te sirva como Origen de Datos.

La mejor manera sería la que te apuntaba de poner la BD en un Servidor, pero entiendo que si tienes datos personales o confidenciales, no lo hagas.

Como alternativa, ayudaría una imagen de ese Formulario en vista de diseño y una aclaración de lo que te comento anteriormente, y si tienes código lo cites, porque eso no es una cuestíon confidencial. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas