Access - Recorrer objetos de un formulario

 
Vista:

Recorrer objetos de un formulario

Publicado por Manuel Pedrero (5 intervenciones) el 12/07/2007 17:55:25
Hola, muy buenas.

¿Alguien podria decirme como conseguir las propiedades de todos los objetos de un formulario sin tener que especificar el nombre de cada uno?, ¿como puedo recorrer todos los objetos del formulario?

Mi idea es recorrer todos los controles de un formulario, para asi poder saber a que campos de las tablas estan unidos, pero no tengo ni idea de como conseguirlo, la intencion es que pueda reutilizar la funcion en cualquier formulario, independientemente de la tabla o base de datos a la que este unido.

Lo intente de esta manera:

Public Function ComfsRecorreObjetos(Formulario As String) As String

For i = 0 To Forms(Formulario).Controls.Count - 1
Forms(Formulario).Controls(i). --> ¿porque no tengo propiedades aqui?


Next i

End Function

Pero al pasar i como argumento (item) no me devuelve nada, y tampoco obtengo propiedades... :s ¿que hago mal?

Gracias por la ayuda...
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:Recorrer objetos de un formulario

Publicado por The Emulator (1 intervención) el 12/07/2007 18:15:21
Hola

Primero que todo creo que deberia ser un procedimiento Sub no funcion ya que no creo que tengas pensado devolver algun dato.

Seria algo como esto:

Public Sub ComfsRecorreObjetos(ByRef Formulario As Form)
Dim Control As Control

For Each Control In Formulario .Controls
If TypeOf Control Is TextBox Then
Control.Value = ""
End If
Next
End Sub

En ese ejemplo recorremos todos los controles de un formulario(Parametro Formulario) luego miramos si es una caja de texto si es una caja de texto limpiamos el contenido de esta.

Lo que debes hacer es colocar la condicion para cada objeto que quieras(Se pueden anidar todas en un solo If)

Teniendo ya cada control en la varibale Control puedes usar todas las propiedades del control actual(Asi no te las muestre cuando coloques Contro[Punto])
Para lo del origen de datos del control podrias colcoar MsgBox Control.DataSource (No recuerdo si se llama asi la proiedad por eso lo hize con una que si me acordaba Value)

Debes colocar la condicion del tipo de objeto ya que sino lo haces pueden salir errores al tratar de acceder a una propiedad que el objeto no tiene ya que como recorres todos los controles, por ejemplo saldria error si intentas acceder a la propiedad DataSource de una linea ya que ese tipo de objetos no tiene esa propiedad.

Saludos
http://www.theemulator.tk
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:Recorrer objetos de un formulario

Publicado por Manuel Pedrero (5 intervenciones) el 13/07/2007 17:31:46
Gracias por la ayuda :)

Realmente el ejemplo que expuse, es parte de una función en la que si que necesitaba devolver algo... y ese algo dependia de los objetos de un formulario...

Gracias ;)
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