Sobre control ficha en formulario

He insertado en el formulario un control ficha (TabCtl76) con dos botones (PagVestuario1 y PagCursos), dentro del botón PagVestuario he insertado un subformulario llamado SubTVestuario1 y dentro de PagCursos otro subformulario llamado SubTCursos, lo que pretendo y no me sale es lo siguiente: Los dos subformularios (subTVestuario y subTCursos) los tengo oculto, lo que quiero es que cuando pulse el botón PagVestuario el subformulario se vuelva visible y así igualmente con PagCursos.

Para lo anterior tengo la siguiente instrucción:

Private Sub TabCtl76_Change ()

SubTVestuario1.Visible = True

SubTCursos.Visible = True

End Sub

Pero me hace algo raro, si pulso PagVestuario no muestra el subformulario, pero si pulso PagCursos si me muestra el subformulario oculto SubTCursos y si ahora pulso PagVestuario me muestra el subformulario SubTVestuario1. Esto es normal o hay que hace otra cosa.

1 respuesta

Respuesta
1

Antonio, antes de responderte, comentarte un par de "errores" que veo:

1/ Lo que tú llamas botones, en realidad son las pestañas (Tabs) del control ficha.

2/ No tiene mucho sentido (para mí) que tengas los subformularios ocultos y los muestres al pulsar en las pestañas. Si el diseño del control ficha es correcto, ya se tendría que ver un subformulario en cada pestaña, con lo que el de la pestaña inactiva ya estaría "oculto".

3/ El control ficha siempre va a tener una pestaña activa, por lo que si no quieres que se vea el subformulario contenido en esa pestaña, igual te sería mejor plantearte si debieras ocultar el control ficha, porque, ¿para qué tener el control sin nada?

En cuanto al código que tienes, al tener los dos formularios ocultos, la primera vez que cambias de pestaña se te vuelven los dos visibles, y ya se quedan así hasta que cierras el formulario y lo vuelves a abrir, y te volverá a hacer lo mismo...

Una solución sería esta:

Private Sub TabCtl76_Change ()

Select Case Me.TabCtl76.Value ' Devuelve el Índice de la Pestaña
Case 0  'Primera pestaña

SubTVestuario1.Visible = True

SubTCursos.Visible = False

Case 1 'Segunda pestaña

SubTVestuario1.Visible = False

SubTCursos.Visible = True

End Select

End Sub

Hola, nuevamente darte las gracias. Veras lo que yo tenia planteado es un formulario con datos personales y dentro del mismo he insertado un control ficha con los datos de vestuario y cursos, lo que pretendía era que no se vieran esos datos hasta que no se pulsara en el botón correspondiente. Un saludo y gracias por la respuesta.

Para hacer eso tiene más sentido (y es menos complicado), poner el control pestañas oculto (con los subformularios dentro de él visibles), y mostrar el control con un botón de comando, algo así:

Private Sub NombreBoton_Click()

Me.TabCtl76.Visible=True

End If

Como ves, mucho más sencillo ;-)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas