Formulario: Abrir con registro nuevo:
Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec End Sub
Registros: Buscar el último registro relacionado a un id. DLast()
Private Sub id_producto_AfterUpdate() saldo_antes = DLast("[saldofinal]", "BodegaPrincipal", "BodegaPrincipal.[id_producto] = " & id_producto) End Sub
Operaciones: Validar un retiro cuando hay saldo/existencia
Private Sub Retiro_AfterUpdate() If existencias < retiro Then retiro = 0 End If saldofinal = saldoanterior - retiro End Sub
Evento: Ejecutar consulta con click en botón
Private Sub Bt_anexar_Click() If anexado = False Then Me.Refresh DoCmd.OpenQuery "c_anexaordenretiro2", , acReadOnly anexado = True Me.Refresh End If End Sub
Funciones y procedimientos
Function saldoactualiza() saldoactualiza = saldo_antes + ingreso - retiro End Function Private Sub id_producto_AfterUpdate() saldo_antes = DLast("[saldo_final]", "Inventario", "Inventario.[id_producto] =" & Id_producto) saldo_final = saldoactualiza() End Sub Private Sub ingreso_AfterUpdate() saldo_final = saldoactualiza() End Sub Private Sub retiro_AfterUpdate() saldo_final = saldoactualiza() End Sub
Palabras reservadas en Access VBA
no se usan como nombre de campo, casilla de texto, etc:
valor value
https://learn.microsoft.com/es-es/office/troubleshoot/access/reserved-words