VBA Access: Bloquear y desbloquear campos dependientes

Esto no es urgente porque como lo hice (seguro con demasiado código) funciona bien. Pero quisiera hacer algo más simple pues yo lo hago como sé que debe hacerse y funciona y como no todos conocen el funcionamiento, podría fallar si se hace 'de otra manera'.

El tema viene así: tengo campos que deben estar con datos antes de habilitarse el siguiente. Los pasos a seguir para completar el formulario son:
Iniciar lectura -> establecer estado final de lectura -> cierre de lectura -> devolución -> fecha de devolución.

'Establecer [...]' y posteriores dependen de que 'Iniciar lectura' tenga datos. Cierre lectura depende de que se haya establecido cierto cierre (cancelado, suspendido o completado [distinto de 0 o 1]). Y así.
¿Hay alguna forma de establecer por código ese nivel de dependencia y habilitar el siguiente campo cuando el anterior cumpla con el requisito?

1 respuesta

Respuesta
1

Una sugerencia podría ser:

- Primer paso: bloquea todos los campos al entrar al registro

- Segundo paso: analiza campo a campo y dependiendo del valor desbloqueas el correspondiente

Sub xxxxx
  me.campo1.locked = true
  me.campo2.locked = true
  .
  .
  me.campo9.locked = true
  '
  'controles
  '
  if ValorCampo1 no es correcto then me.campo1.locked = false: exit sub
  if ValorCampo2 no es correcto then me.campo2.locked = false: exit sub
  .
  .
  if ValorCampo9 no es correcto then me.campo9.locked = false: exit sub
End Sub 

De esta forma, al ir en orden sólo desbloquearías el campo que tu desees.

Obviamente lo que he escrito son 'ideas', no código ejecutable.

Gracias por el comentario. Eso es exactamente lo que tengo hecho. Pero son muchísimas líneas y quería reducir la cantidad.

Si fuera capaz de adivinar el código que tienes para así poder echarle un vistazo, ten por seguro que no lo haría, ... dedicaría semejante don a ganar unos cuantos premios a la lotería ... :-P

¿Y si pegas el código que tienes?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas