![]() |
![]() |
Sintaxis para formularios y subformularios
Este 'mini-tutorial' no pretende ser la definición definitiva sobre como llamar a los formularios, controles, etc, sólo se basa en mi experiencia personal. Existen múltiples hilos en la News y en el foro del Búho que tratan el tema, y cada cual da su opinión. Esta es, simplemente, mi opinión al respecto.
Imaginemos que queremos asignar un valor a la propiedad Visible de un control ListBox situado en un subformulario desde el formulario principal.
Me!miSubForm!miListBox.Visible = True
Me!miSubForm.Form!miListBox.Visible = True
Me!miSubForm.Form.Controls("miListBox").Visible = True
Me!miSubForm.Form.Controls("miListBox").Properties("Visible") = True
Forms("miForm").miSubForm.Form.Controls("miListBox").Properties("visible") = True
Todo esto produce (salvo error) el mismo resultado.... y seguro que existen mas formas.
Como resumen:
Me!miSubForm!miListBox.Visible = True
Lo azul se puede sustituir por:
Forms("miForm")
Forms![miForm]
Lo rojo por:
Controls("miSubForm")
miSubForm.Form
Lo verde por:
Controls("miListBox")
Y lo naranja por:
Properties("Visible")
A partir de aqui, se pueden hacer las combinaciones que se deseen.
Vamos ahora por la discusión entre . y !
En algunos casos, se puede cambiar ! por . (pero no al revés). Por ejemplo:
Me.miControl.miPropiedad (forma fácil de escribir, ya que al pulsar el . despues de Me, aparece la lista de posibilidades)
puede ponerse como:
Me!miControl.miPropiedad (forma mas 'académica')
pero no como: Me!miControl!miPropiedad
Truco: justo despues de escribir !, pulsamos la combinación Ctrl+Espacio y nos aparece la lista de posibilidades. |
Tal como decia Eva Etxebeste en este hilo de las News, primero aprendamos a hacerlo bien (o como dice la ayuda de Access), que para hacerlo mal siempre estamos a tiempo. Vamos, que lo sepamos hacer bien, que cuando empecemos a abreviar, por lo menos sabremos lo que hacemos. Tambien puedes ver: Sintaxis para Formularios/Subformularios
Última actualización: 30 de mayo de 2007
© Xavi Lloberas, 2005-2007