Visual Basic - URGENTE!! Recorrer controles formulario

Life is soft - evento anual de software empresarial
 
Vista:

URGENTE!! Recorrer controles formulario

Publicado por SoyNueva (5 intervenciones) el 03/01/2007 14:26:53
Hola a todos. Lo primero de todo, deciros que, aunque esta es la primera vez que escribo en este foro, deciros que me sirve de gran ayuda cuando estoy con vosotros y no se que haría sin vosotros.
Mi problema es el siguiente, espero que me podais ayudar:
Tengo una aplicación que dependiendo de como se muestre, en las etiquetas y demás deben cambiar ciertas propiedades, como por ejemplo el caption. Necesitaria crearme una funcion que me recorriera todos los componentes que existan en un formulario, y asignarle a la propiedad que yo quiera el valor.

He usado el siguiente codigo,

For Each ObjControl In Form1.Controls
MsgBox ObjControl.Name
Next

Esto de momento me dice los controles que tengo en un formulario determinado, pero me gustaria saber la forma de poder hacer que me muestre todos los formularios de un proyecto, y por cada formulario, todas las propiedades que tiene ese objeto, y cambiarle el valor.

Tambien me gustaria poder hacer que si leo de una tabla el nombre de ese componente, si por ejemplo tengo un registro que me devuelve el nombre del formulario, el nombre del componente de ese formulario, la propiedad y el valor de esa propiedad, hacer que lo muestre. Por ejemplo, una tabla SQL con los campos NombreFormulario, NombreComponente,Propiedad, Valor, devuelve Form1 (nombre del formulario), Text1 (nombre del componente), Text (la propiedad), "AAA" (el valor de la propiedad), como hacer para que si yo uso eso valores, se cambie el valor de dicho control por el valor que he leido de la tabla.

Muchas gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE!! Recorrer controles formulario

Publicado por Nuevo (6 intervenciones) el 04/01/2007 19:10:22
para ser nueva preguntais mucho. cuando lleveis unas semanas aqui ni se os ocurrira preguntar.
suerte nena!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE!! Recorrer controles formulario

Publicado por SoyNueva (5 intervenciones) el 12/01/2007 10:58:32
Si no sabes como ayudarme unicamente dimelo, q no te de verguenza, nadie lo sabe todo. Pero sigue buscando la perfección q vas por buen camino. Por cierto... para ti soy supernena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

URGENTE!! Recorrer controles formulario

Publicado por osatxi (8 intervenciones) el 05/03/2014 12:50:11
Hallaste la solución de esto, tengo el mismo problema y no sé como hacer para recorrerme los controles de todos los formularios desde un módulo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

URGENTE!! Recorrer controles formulario

Publicado por Rafael (68 intervenciones) el 05/03/2014 13:42:47
Ya veo el error
1
2
3
4
5
6
7
8
9
10
Public Function mostrarNombreControles()
    Dim obj , dbs, controlForm As Object
    Set dbs = Application.CurrentProject
    For Each obj In dbs.AllForms
        nombre = obj.name
        For Each controlForm In obj.Controls
            MsgBox controlForm.name
        Next
    Next
End Function

Ahora para lo que dices de modificar los atributos de diferentes controles...

En principio deberias pensar que si no has hecho un load de los formularios estos no estan en memoria y alterar sus atributos los cargara en memoria, quizás solo deberias modificar en el load los atributos correspondientes al formulario que estas cargando, este proceso reultaria mas agil.

Luego entonces si te limitas al formulario mostrado, realizas tu consulta por formulario en la cual has traido el nombre del control, el atributo y el valor, los concatenas como instruccion VB ejemplo:

Control.text = "HOLA"
Control2.caption = "Algo Mas"
etc...

Para ejecutar esta cadena hay pocas opciones y como no indicas el entorno de visual basic si esta dentro de un access, excel (visual basic para aplicaciones), .net, o 6 ...

.Net
mirate esto: http://www.codeproject.com/Articles/2160/Runtime-C-Expression-Evaluator

Access
Mirate la instruccion EVAL()

Excel, VB6
http://support.microsoft.com/kb/184739

Espero haberte ayudado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

URGENTE!! Recorrer controles formulario

Publicado por osatxi (8 intervenciones) el 06/03/2014 09:41:47
MUCHISIMAS GRACIAS RAFAEL. Estoy trabajando en Access. No sé si te refieres a que cambie los atributos de los controles del formulario en el evento cargar del formulario, lo que pasa es que yo quería crear un único método que me sirviera para todos los formularios, y no tener que repetirlo al cargar cada uno de ellos. No sé si me he explicado bien o te he entendido bien.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar