Aquí termino
Por un lado, si el control donde únicamente vas a poner Oh, o lo que sea se llama 1 a secas, no te va a funcionar porque como en la instrucción le dices
If 1="OK"
Access entiende que no es así, por eso, aunque en la etiqueta le pongas 1 al control llámalo, por ejemplo, A1
Si tengo el formulario en vista hoja de datos( que jamás de los jamases le he visto alguna utilidad)
Y como según dices quieres poder cambiar el valor en el campo 1
Si escribo algo en el control 1 del segundo registro, como no es OK me deja escribir en los otros
Pero si escribo OK en el primer registro
Puedes ver que después de escribir OK, los demás controles de ese registro se han decolorado, eso es que están inhabilitados( sería exactamente lo mismo que si estuvieran bloqueados, pero es para que veas que se decoloran)
Si volviera al primer registro, como pone OK se volverían a decolorar, menos el 1 que es el que dices que quieres poder cambiar.
Vamos a suponer que relleno el último registro y en Saldo( no sé si lo rellenas, sino el código se pondría en el último control que rellenaras de ese registro). Cuando pulso Enter( que tambien equivale Al perder el enfoque), puedes ver que no sigue rellenando registro, sino que el cursor se va al botón del formulario
El código del formulario es
Private Sub A1_AfterUpdate()
If A1 = "ok" Then
Codigo.Enabled = False
Producto.Enabled = False
A2.Enabled = False
Barra.Enabled = False
Deposito.Enabled = False
Stock.Enabled = False
Real.Enabled = False
Saldo.Enabled = False
Else
Codigo.Enabled = True
Producto.Enabled = True
A2.Enabled = True
Barra.Enabled = True
Deposito.Enabled = True
Stock.Enabled = True
Real.Enabled = True
Saldo.Enabled = True
End If
End Sub
Private Sub Form_Current()
If A1 = "ok" Then
Codigo.Enabled = False
Producto.Enabled = False
A2.Enabled = False
Barra.Enabled = False
Deposito.Enabled = False
Stock.Enabled = False
Real.Enabled = False
Saldo.Enabled = False
Else
Codigo.Enabled = True
Producto.Enabled = True
A2.Enabled = True
Barra.Enabled = True
Deposito.Enabled = True
Stock.Enabled = True
Real.Enabled = True
Saldo.Enabled = True
End If
End Sub
Private Sub Saldo_LostFocus()
If Me.CurrentRecord = Me.Recordset.RecordCount Then
Me.Parent!Comando56.SetFocus
End If
End Sub
Y no hace falta que los controles estén previamente bloqueados, ya que si en 1 pone Ok se bloquean( o se inhabilitan como es este caso)