Limpiar cuadro de texto dependiente con botón

Quería pedir de su ayuda. Tengo un formulario Factura de Compra con un subformulario Línea Factura de Compra, en este formulario tengo tres cuadros de texto (SubTotal, Iva y Total), y al cuadro de texto iva en la hoja de propiedades Datos en origen del control coloque =SubTotal * 0,19, pero me llego una factura sin iva o exenta por lo que tengo que dejar en 0. Intente agregar un botón y en el evento Al hacer Clic agregue este código Me.iva=0 pero no funciona.

1 respuesta

Respuesta
2

Si en el origen de control del cuadro de texto has puesto eso de Subtotal*... el cuadro de texto no es dependiente, sino independiente. ¿Para qué ocupar los orígenes de control de los cuadros de texto con fórmulas? Es mejor dejarlos libre y la operaciones hacerlas en código.

Si tengo el formulario, con dos cuadros de texto( no te fijes en subtotal, sino en IVA).

En el evento Después de actualizar del cuadro de texto Subtotal, he creado un procedimiento de evento y he puesto

Private Sub Subtotal_AfterUpdate()
IVA = Subtotal * 0.16
End Sub

De forma que cuando escribo algo en subtotal y pulso Enter

Y si ahora pulso el botón

Y en el evento Al hacer clic del botón sólo he puesto

Private Sub Comando55_Click()
IVA = 0
End Sub

Excelente idea.

Ya agregue el código para el cuadro de texto iva y el código para el botón, pero al cargar los productos en el subformulario me faltaría el código para el cuadro de texto SubTotal y me sume el total de las lineas de los productos que estoy ingresando. Que código tendría  que colocar para el cuadro de texto SubTotal?.

No sé como tienes construido el formulario y el subformulario, por eso no puedo opinar, pero si tengo el formulario Ventas, con un subformulario DetalleVenta, cuando elijo un producto, en precio me pone su valor y cuando escribo la cantidad que vendo, es cuando debe calcularse el subtotal.

En el evento Después de actualizar del cuadro de texto se crea un procedimiento de evento y entre Private Sub y End Sub le tengo puesto

Private Sub Cantidad_AfterUpdate()
DoCmd.SetWarnings False
Subtotal = Precio * Cantidad
Quedan = Existencias - Cantidad
DoCmd.RunSQL "update productos set existencias=quedan where producto='" & Me.Producto & "'"
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Importe = DSum("subtotal", "detalleventa", "idventa=" & Me.IdVenta & "")
End Sub

Es decir, primero, pon el control Subtotal

Luego actualízame la tabla Productos de forma que las existencias de ese producto sean las que quedan después de vender. Y por último, en el cuadro de texto Importe del formulario vete poniendo la suma acumulada del subtotal de los diferentes productos que vendo.

Y ahora es cuando decido, ¿le cobro IVA o no se lo cobro? En función de lo que decida, elijo en el combinado el porcentaje que le voy a cobrar y en el momento que elijo uno, me rellena el resto

Oka, lo veo complicado de entender pero intentare traspasar esa información. ¿Me puedes confirmar antes si en la línea "idventa" corresponde al código del producto del subformulario DetalleVenta? Y de donde sale Me. ¿IdVenta?

Me.Parent!Importe = DSum("subtotal", "detalleventa", "idventa=" & Me.IdVenta & "")

IdVenta es el campo que relaciona la tabla Ventas con DetalleVenta, UNO a VARIOS. Una venta varios productos.

He ingresado todo lo que me indicas pero no funciona, se que algo estoy haciendo mal, pero no logro dar con el problema. Me dio varios errores, uno de ellos fue cambiar DSum por Dsuma y ahora pensé que era la vinculación del formulario con el subformulario, pero lo revise y esta bien. No me puedo imaginar que más puede ser

Encontré el error que estaba cometiendo.Volví a colocar Dsum y a " & Me.FCOMPRA & " le coloque comilla simple y funciono. Así que muchas gracias por tu paciencia. Otro problema resuelto, un abrazo.

Me.Parent!Texto12 = DSum("SUB_TOTAL", "FACTURA_COMPRAS_DETALLES", "FCOMPRA='" & Me.FCOMPRA & "'")

Vamos a ver, en código VB todo es en inglés, por eso es Dsum.

Por otro lado, cuando un valor es numérico se le "encierra" con comillas, por ejemplo

FCompra=" & me.fcompra & "")

Si es texto sería

Fcompra='" & me.fcompra & "'"), o sea, apóstrofe comillas y cierra comillas, apóstrofe, comillas

Y si es fecha sería

FCompra=#" & me.fcompra & "#")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas