Evitar ediciones en registros de formulario

Tengo una base de datos para registrar las ventas de una cafetería y me gustaría saber como puedo hacer para que al realizar una venta en mi formulario de "registro de ventas" ese registro en específico deje de estar disponible para ediciones.

Como detalle, dentro del formulario tengo un botón llamado "confirmar venta" que tiene un código vba que permite que se descuenten los productos del inventario y se genere un nuevo registro en el formulario. Este debería ser el último botón que se utiliza al realizar una venta y confirmar su término.

2 respuestas

Respuesta
1

Puedes hacerlo de varias formas. Por eso sería conveniente que pusieras una imagen del formulario. La más sencilla es que en las propiedades del formulario-Datos-Entrada de datos le pongas Sí. Así, siempre que lo abras se irá a un registro nuevo. Con lo cual no "puedes" ir a un registro antiguo.

Otra podría ser que a la tabla ¿Facturas? Le añadieras un campo, por ejemplo, Emitida, tipo Si/No, de forma que cuando pulses ese botón que dices te "marque" Emitida como sí. Y en las propiedades del formulario, en eventos-Al activar el registro poner algo como

If emitida=true then

cliente.locked=true

numMesa.locked=true

...

else

cliente.locked=false

numMesa.locked=false

...

end if

Otra forma sería usar

If isnull([NumFactura]) then

for each control in form.controls

Y aún hay más, por eso te decía que sería conveniente que pusieras una imagen del formulario.

Esta es la imagen del formulario, me gustaría saber cual es la opción que más me recomienda.

Si te tuviera que aconsejar te diría que en las propiedades del formulario-Eventos-Al Activar registro

Crearas un procedimiento de evento

Private Sub Form_Current()
If Not IsNull([NVenta]) Then
Me.AllowEdits = False
Else
Me.AllowEdits = True
End If
End Sub
Es decir, que si "al ir " a un registro, tiene número de factura( he supuesto que el control se llama Nventa), no permite ediciones, y si, por el contrario, no tiene número(registro nuevo) puedes escribir lo que quieras.

Respuesta
1

Puede utilizar una variable booleana a nivel de módulo del formulario, algo como

Dim boolGrabado As Boolean

El evento del botón Al hacer clic del botón "Confirmar venta", adicione este código

IF boolGrabado Then

   msgbox "Ya registró esta venta",vbinformation,"Le informo"

   exit sub

End If

'Acá va el código para guardar el registro

..

..

boolGrabado=True

Ahora en el botón digamos "Agregar Venta" adicione

boolGrabado=False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas