Palabras clave:
etiqueta, label, asociada, vinculada, controlAutor:
xavi y Duane HookomExtraído de:
experiencia propia y un ejemplo de UtterAccess muy antiguoObjetivo: Obtener propiedades de la etiqueta asociada a un control, por ejemplo, un cuadro de texto sabiendo el nombre del cuadro de texto.
La nueva versión 2019 incorpora una propiedad llamada "Nombre de etiqueta" que permite asociar una etiqueta existente a un control. Antes, como dice
este artículo era necesario cortar la etiqueta, clicar el control y pegar la etiqueta. De esa forma se asociaban ambos controles.
El "problema" es acceder a la propiedad desde VBA.
Si investigamos nos encontramos que su nombre es
LabelName. Pero resulta que, desde código, no aparece
La forma de acceder es "indirecta": Me!nombrecontrol.Properties("LabelName")
Ahora bien... ¿y como acceder en versiones anteriores?
Esto lo he sacado de un ejemplo muy antiguo, del 2007, de UtterAccess. Pero el código es más antiguo aún: 1998. Autor: de Duane HookoPues accediendo a la colección Controles del control. Si la cuenta de controles del control es superior a 0, el ítem 0 de la colección es la etiqueta. Referenciando ese control podemos acceder a sus propiedades.
' Asignamos el control
Set ctrl = Screen.ActiveControl
' Desactivamos momentáneamente el control de errores por si alguna propiedad fallara
On Error Resume Next
' Si el contador de controles del control es superior a 0
If ctrl.Controls.Count > 0 Then
' Tomamos el ítem 0 de la colección y accedemos a sus propiedades
Debug.Print "Nombre: " & ctrl.Controls(0).Name
Debug.Print "Caption: " & ctrl.Controls(0).Caption
End If
' Reactivamos el control de errores
On Error GoTo ErrorHandler