RECORRER CONTROLES DE UN FORMULARIO |
Responder |
Autor | |
PINGUINO
Nuevo Unido: 20/Enero/2021 Localización: ESPAÑA Estado: Sin conexión Puntos: 16 |
Tema: RECORRER CONTROLES DE UN FORMULARIO Enviado: 21/Enero/2021 a las 18:28 |
Hola Buenas tardes, necesito poder generar un módulo en acces independiente para recorrer todos los controles que existen en todos los formularios de la aplicacion y no se como hacerlo. Tengo un codigo en el evento LOAD, pero solo me sirve para el formulario que estoy cargando en ese momento y yo lo que necesito es recorrer todos los CONTROLES LABEL, de todos los formularios existentes en la base de datos,
ya tengo generado un modulo que me recorre toda la base de datos y me vrea una tabla con los nombres de todos los formularios existentes. Ahora necesito de cada uno de esos formularios generar una tabla con todos los nombres de los controles LABEL, de cada uno de los formularios
Muchas gracias de antemano |
|
ES SUPERCHULO IR APRENDIENDO ACCES EN ESTE FORO
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 21/Enero/2021 a las 19:11 |
Hola,
¿Qué tal andamos de VBA? Necesitas una función en un módulo independiente y una tabla dónde almacenar los resultados En la función: - Debes declarar y asignar la base de datos actual Dim dbs As Object Set dbs = Application.CurrentProject - Debes declarar una variable objeto y recorrer la colección de formularios de la base de datos actual Dim obj As Object For Each obj In dbs.AllForms - Debes abrir cada formulario en vista diseño y modo oculto DoCmd.OpenForm obj.Name, acDesign,,,,acHidden - Debes declarar una variable Control y recorrer la colección de controles Dim ctl As Control For Each ctl In Forms(obj.Name).Controls - Debes evaluar el tipo de control If ctl.ControlType = acLabel Then - Cuando se cumpla la condición, almacenas los datos en la tabla (ya habria abierto un recordset para rellenarla) - Al final de la iteración por los controles, se cierra el formulario sin guardar cambios DoCmd.Close acForm, obj.Name, acSaveNo - Al final de los formularios "liberas" la variable Set dbs = nothing Espero te sirva Un saludo |
|
PINGUINO
Nuevo Unido: 20/Enero/2021 Localización: ESPAÑA Estado: Sin conexión Puntos: 16 |
Enviado: 21/Enero/2021 a las 19:45 |
lo voy a probar ahora mismo.
luego te cuento, muchas gracias
|
|
ES SUPERCHULO IR APRENDIENDO ACCES EN ESTE FORO
|
|
PINGUINO
Nuevo Unido: 20/Enero/2021 Localización: ESPAÑA Estado: Sin conexión Puntos: 16 |
Enviado: 21/Enero/2021 a las 21:41 |
HOLA,
esta casi conseguido, me da un error 7784 cd tiene que abrir un subformulario
|
|
ES SUPERCHULO IR APRENDIENDO ACCES EN ESTE FORO
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 22/Enero/2021 a las 10:00 |
Analiza el tipo de control para obviar los subformularios ya que, en realidad, lo analizarás cuando llegues a ese formulario.
|
|
PINGUINO
Nuevo Unido: 20/Enero/2021 Localización: ESPAÑA Estado: Sin conexión Puntos: 16 |
Enviado: 22/Enero/2021 a las 11:25 |
Hola Xavi,
ante todo darte infinitas gracias por tu ayuda, sin ti, no lo hubiera conseguido. si me puedes indicar como controlar que es un subformulario te lo agradezco. Saludos, Pinguino
|
|
ES SUPERCHULO IR APRENDIENDO ACCES EN ESTE FORO
|
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14738 |
Enviado: 22/Enero/2021 a las 11:58 |
Siguiendo el espíritu del foro que se basa en explicar como hacer las cosas y donde buscar la información, te contaré como enfocar el tema.
Hay un momento del código dónde evalúas el ControlType. Se hace a través de un If porque solo quieres tratar una casuística. Ahora queremos tratar 2: cuando es una etiqueta y cuando es un subformulario. En lugar de utilizar un If (se podría hacer con If..ElseIf pero no me gusta tanto) utilizaríamos una estructura de decisión de tipo Select Case para el ControlType del control en cuestión Ahora bien, ya sabemos que las etiquetas se reconocen por ControlType = acLabel. acLabel es el nombre de una constante de Access para no tener que recordar el valor 100. De la misma manera que hay una constante para las etiquetas, existen constantes para cada uno de los distintos tipos de control. ¿Cómo obtener la lista de los controles? Existen diferentes formas de encontrarla. - Te sitúas en la palabra ControlType y pulsas F1. Acabas en la página de ayuda dónde, en las observaciones, hay un link a los distintos valores de enumeración. Ahí encontrarás el valor de cada uno de ellos. - Te sitúas en la palabra acLabel y pulsas Mayusculas+F2 para ver su definición. Se abrirá el examinador de objetos con la colección de constantes que son miembros de la colección Access.AcControlType. Te explico los 2 métodos por que son la gran fuente de información y que te ahorrará muchas búsquedas. Con eso seguro que lo encuentras. Un saludo |
|
PINGUINO
Nuevo Unido: 20/Enero/2021 Localización: ESPAÑA Estado: Sin conexión Puntos: 16 |
Enviado: 22/Enero/2021 a las 17:40 |
Muchisimas gracias, me ha venido de cine
|
|
ES SUPERCHULO IR APRENDIENDO ACCES EN ESTE FORO
|
|
PINGUINO
Nuevo Unido: 20/Enero/2021 Localización: ESPAÑA Estado: Sin conexión Puntos: 16 |
Enviado: 31/Enero/2021 a las 12:14 |
Xavi, muchisimas gracias por tu ayuda, ha sido de gran ayuda.
no me he podido conectar antes, para agradecerte, porque he estado de revisiones médicas oncológicas, pero ya estoy listo otra vez. Gracias por tu ayuda
|
|
ES SUPERCHULO IR APRENDIENDO ACCES EN ESTE FORO
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |