Autor Tema: Propiedades etiqueta asociada a un control  (Leído 46 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 176
Propiedades etiqueta asociada a un control
« en: Mayo 05, 2020, 03:36:22 pm »
Palabras clave: etiqueta, label, asociada, vinculada, control
Autor: xavi y Duane Hookom
Extraído de: experiencia propia y un ejemplo de UtterAccess muy antiguo

Objetivo:
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 Hooko


Pues 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.

Código: [Seleccionar]
' 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