Cambiar la propiedad backcolor de un label según combobox

Tengo un formulario con 30 label con la propiedad Tag = "Lab" y que he nombrado cada label como: HAB-01, HAB-02... Hasta HAB-30, ¿y lo que busco es que al seleccionar en el combobox una opción HAB-?, ésta cambie la propiedad backcolor del label en cuestión.

2 respuestas

Respuesta
2

Carlos: Un modo que seguro no es el único es el Siguiente suponiendo que el Combo que citas se llame CboEtiquetas (puede ser cualquier nombre), en su evento después de actualizar (AfterUpdate), pones ese código

Private Sub CboEtiquetas_AfterUpdate()
Dim Ctrl As Access.Control
If Not IsNull(Me.CboEtiquetas) Then
    For Each Ctrl In Me.Controls
            If Ctrl.ControlType = acLabel And Ctrl.Name = Me.CboEtiquetas Then
                    Ctrl.BackColor = RGB(255, 0, 0)
            Else
                    Ctrl.BackColor = RGB(255, 255, 255)
            End If
    Next Ctrl
Else
        MsgBox "El cuadro combinado ha de tener un valor", vbCritical, "FALTADATO"
End If
End Sub

Te he puesto los colores rojo y blanco, pero tu pones los que quieras.

La propiedad de >> Estilo de Fondo de las Etiquetas ha de estar en Normal, no puede ser Transparente. Un saludo >> Jacinto

No me funciona. Me da error de compilación. No se ha definido el tipo por el usuario

Carlos: Por el tipo de mensaje parece que falte alguna referencia. Mira de que estén activas éstas.

El 16.0 es el de la versión de Access, de modo que en tu caso puede ser distinto.

Un saludo >> Jacinto

Respuesta
2

Supongamos que tengo un formulario con un combinado llamado Elegir, donde elijo el nombre de la etiqueta

Cuando elijo alguna

El resultado es

El código es simplemente

Private Sub Elegir_AfterUpdate()
For Each Control In Form.Controls
If Control.ControlType = acLabel Then
If Control.Name = Forms!formulario1!Elegir Then
Control.BackColor = vbYellow
End If
End If
Next
End Sub

Pero importante, acuérdate de poner el fondo de las etiquetas como normal. Si lo dejas transparente no funcionará.

Me pide: Se requiere un objeto

Prueba a compilar el código para ver en que línea te da el error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas