¿Cómo habilitar registros dependiendo de la opción seleccionada en cuadro combinado?

Que tal buen día a todos, espero puedan ayudarme con esta duda para mi proyecto, tengo una tabla llamada "tblExpedientes" con su formulario llamado "formExpedientes", quisiera saber como puedo hacer en el formulario para que dependiendo de la opción seleccionada en un cuadro combinado llamado "cboOperacion" de mi formulario "formExpedientes" se habiliten ciertos campos ya que no todos los campos son necesarios dependiendo de la operación seleccionada en el cuadro combinado. ¿Se podrían ocultar los campos que no se necesiten para cierta operación y mostrar los que si se necesiten llenar?

2 respuestas

Respuesta
2

Sí se puede, y además, es muy sencillo de hacer: solo has de programar el evento "Después de actualizar" de tu cuadro combinado cboOperación con algo así:

Private Sub cboOperacion_AfterUpdate()
Select Case Me.cboOperacion
  Case 1 ' o Case "operación1"... según el valor que devuelva el combo
     'Para los campos a mostrar:
     Me.CampoMostrar1.Visible=True
     Me.CampoMostrar2.Visible=True
     ...
     'Para los campos a Ocultar:
     Me.CampoOcultar1.Visible=False
     Me.CampoOcultar2.Visible=False
     ...
  Case 2 ' o Case "operación2"
     'Para los campos a mostrar:
     Me.CampoMostrar3.Visible=True
     Me.CampoMostrar4.Visible=True
     ...
     'Para los campos a Ocultar:
     Me.CampoOcultar3.Visible=False
     Me.CampoOcultar4.Visible=False
     ...
 Case 3 ' o Case "operacion3"
      ....
End Sub

Tan solo has de poner las opciones que devuelve tu combo en los Case... y poner los nombres de tus campos con la propiedad Visible en True (para mostrarlos) o False (para ocultarlos)

Luego, además, si quieres que al navegar por los registros se muestren/oculten los campos correspondientes en función del valor que muestra el combo, pones el mismo código en el evento "Al activar registro" del formulario.

Un saludo.


Vaya, ahora que veo la otra respuesta, no sé porque usé Visible y no Enabled (o Locked), que al final es lo que pedías... No es bueno contestar tan de mañana, je je...

Respuesta
1

[Hola Ruben. Te dejo dos opciones diferentes para que elijas la mejor que te convenga.

Opción 1

Private Sub cboOperacion_Change()
Select Case Me.cboOperacion
  Case 1
    ´Solo tienes que cambiar los nombres de las cajas
    Me.TextBox1.Enabled = True
    Me.TextBox2.Enabled = True
    Me.TextBox3.Enabled = True
    Me.TextBox4.Enabled = True
  Case 2
    Me.TextBox1.Enabled = False
    Me.TextBox2.Enabled = False
    Me.TextBox3.Enabled = False
    Me.TextBox4.Enabled = False
End Select
End Sub

Opción 2

Select Case Me.cboOperacion
  Case 1
     'Cambia el nombre de las cajas
    Me.TextBox1.Enabled = True
    Me.TextBox2.Enabled = False
    Me.TextBox3.Enabled = True
    Me.TextBox4.Enabled = False
  Case 2
    Me.TextBox1.Enabled = False
    Me.TextBox2.Enabled = True
    Me.TextBox3.Enabled = False
    Me.TextBox4.Enabled = True
End Select
End Sub

Salu2 Carlos Arrocha

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas