|
Buen día.
Trataré de explicar mi consulta.
Tengo un formulario (principal) al que le tengo 1 control de ficha con 9 pestañas y en cada pestaña 9 subformularios desconectados. Tanto las pestañas como los subformularios está ocultos.
Tengo también, botones de comando que al clicarlos me hace visible la primera pestaña oculta con su respectivo subformulario; y carga en el subformulario con SourceObject el formulario del módulo que necesito mostrar, [lo que simula digamos un navegador].
En cada formulario [módulo] tengo un botón de cerrar, que prácticamente manda el foco al formulario principal, me oculta el subformulario actual donde está el botón de cerrar y su respectiva pestaña.
Para lo cual me apoyo con la siguiente función publica. "Ver mas abajo"
El problema radica en que a veces me lanza un error donde dice:
Se ha producido el error '2467' en tiempo de ejecución: La expresión que ha especificado hace referencia a un objecto que está cerrado o que no existe.
Específicamente en esta línea: If ctl.Form.Name = subForm.Name Then en ctl.Form.Name.
Public Function ObtenerPaginaSubformulario(subForm As Form) As String 'On Error Resume Next Dim sForm As Form Dim tabControl As Control Dim tabPage As Page Dim ctl As Control
' Asume que el formulario principal se llama "_Principal" Set sForm = Forms("_Principal") ' Recorre los controles ficha para encontrar la página que contiene el subformulario For Each tabControl In sForm.Controls If TypeOf tabControl Is tabControl Then For Each tabPage In tabControl.Pages For Each ctl In tabPage.Controls If TypeOf ctl Is subForm Then If ctl.Form.Name = subForm.Name Then ObtenerPaginaSubformulario = tabPage.Name Exit Function End If End If Next ctl Next tabPage End If Next tabControl
ObtenerPaginaSubformulario = "No está contenido en una página." End Function
¿Alguna sugerencia o alternativa?.
Bueno si se puede entender. 
Nota: ¿Cómo puedo subir una imagen?
------------- Viendo se aprende y practicando se mejora
|