Referencias a subformularios por medio de Forms()
Publicado por Rubén (47 intervenciones) el 30/08/2006 19:50:57
Hola a todos:
En la base de datos en la que trabajo, deseo utilizar un formulario al que llamo desde otros formularios, por ejemplo pulsando en botones o en campos, y que me muestra datos filtrados según el registro activo de esos formularios de origen. Esto lo realizo por medio de código con instrucciones del tipo:
"DoCmd.OpenForm stDocName, acFormDS, acEdit, stLinkCriteria"
Desde ese mismo formulario, accedo también a campos del formulario que lo ha llamado con referencias hechas por medio de Forms(), es decir, algo como:
"Forms(nombre_formulario_origen)!NombreControl"
...siendo nombre_formulario_origen una variable declarada como pública.
El sistema funciona perfectamente, excepto cuando ese formulario origen es, a su vez, un subformulario.
Según la ayuda de Access, la sintaxis para referirse a un control o un campo de un subformulario es de la forma (sabiendo, a la hora de escribir el código, el nombre de ambos):
Forms!FormularioPrincipal.Subformulario!NombreControl
Sin embargo, no sé cómo hacer el equivalente con Forms(), que en permite establecer el nombre en tiempo de ejecución. Si le incluyo sólo el nombre del subformulario, obtengo un error de código 2450 que me dice que no puede encontrar el formulario.
Si intento agregarle a ese nombre el del formulario principal del que depende, creando una cadena del tipo "Formulario.Subformulario", también obtengo el mismo error.
¿Sabría alguien decirme cómo es la forma correcta de proceder? No puedo emplear en el código la referencia directa "Forms!FormularioPrincipal.Subformulario!NombreControl", porque el formulario llamante no es siempre el mismo...
Un saludo y gracias anticipadas,
Rubén
En la base de datos en la que trabajo, deseo utilizar un formulario al que llamo desde otros formularios, por ejemplo pulsando en botones o en campos, y que me muestra datos filtrados según el registro activo de esos formularios de origen. Esto lo realizo por medio de código con instrucciones del tipo:
"DoCmd.OpenForm stDocName, acFormDS, acEdit, stLinkCriteria"
Desde ese mismo formulario, accedo también a campos del formulario que lo ha llamado con referencias hechas por medio de Forms(), es decir, algo como:
"Forms(nombre_formulario_origen)!NombreControl"
...siendo nombre_formulario_origen una variable declarada como pública.
El sistema funciona perfectamente, excepto cuando ese formulario origen es, a su vez, un subformulario.
Según la ayuda de Access, la sintaxis para referirse a un control o un campo de un subformulario es de la forma (sabiendo, a la hora de escribir el código, el nombre de ambos):
Forms!FormularioPrincipal.Subformulario!NombreControl
Sin embargo, no sé cómo hacer el equivalente con Forms(), que en permite establecer el nombre en tiempo de ejecución. Si le incluyo sólo el nombre del subformulario, obtengo un error de código 2450 que me dice que no puede encontrar el formulario.
Si intento agregarle a ese nombre el del formulario principal del que depende, creando una cadena del tipo "Formulario.Subformulario", también obtengo el mismo error.
¿Sabría alguien decirme cómo es la forma correcta de proceder? No puedo emplear en el código la referencia directa "Forms!FormularioPrincipal.Subformulario!NombreControl", porque el formulario llamante no es siempre el mismo...
Un saludo y gracias anticipadas,
Rubén
Valora esta pregunta


0