Como puedo cambiar el titulo de un botón desde un formulario

Quiero poder cambiar el nombre de titulo de barios botones de un formulario,

Mi idea es poder tener en una tabla los nombres que quiero dar a los botones y desde otro formulario poder administrar los nombre que quiero que tenga los botones

1 Respuesta

Respuesta
1

Le preparé este ejemplo, consta de 1 taba y 1 formulario

TABLA

En el campo btn_nombre se registra el nombre del botón del formulario y en el campo btn_titulo, el título que se va a fijar en el botón del formulario, observe el & es para que al pulsar el formulario la tecla ALT + primera letra se ejecute un procedimiento.

FORMULARIO

Al abrir el formulario aparecen los 6 botones con el nombre que asigna Access por defecto, cada botón tiene el nombre btn01, btn02, ... hasta btn06, son los mismos que están en la tabla columna btn_nombre. Al hacer clic en el botón Cargar nombres, obtengo:

CÓDIGO DE BOTON CARGAR NOMBRES (btnCargar)

En el evento Al hacer clic.

Private Sub btnCargar_Click()
 Dim ctl As Control
For Each ctl In Controls
     With ctl
         If .ControlType = acCommandButton Then
            .FontName = "Tahoma"
            .FontSize = 11
            Select Case .Name
              Case "btn01"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn01'")
               .ForeColor = vbRed
              Case "btn02"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn02'")
               .ForeColor = vbBlue
              Case "btn03"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn03'")
               .ForeColor = vbNormal
              Case "btn04"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn04'")
               .ForeColor = vbBlue
              Case "btn05"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn05'")
               .ForeColor = vbNormal
              Case "btn06"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn06'")
               .ForeColor = vbBlue
              Case "btn07"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn07'")
               .ForeColor = vbNormal
              Case "btn08"
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & "btn08'")
               .ForeColor = vbRed
            End Select
        End If
    End With
 Next
End Sub

Seguro que hay soluciones más completas, pero esta me funcionó

Si quiere el ejemplo lo puede solicitar a [email protected],favor en el asunto anotar la consulta.

Algo más simplificado:

Observe el subformulario que contiene la tabla, puede cambiar un titulo y hacer clic nuevamente en el botón Cargar nombres.

La diferencia con el anterior ejemplo es:

1. El nombre del botón Cargar nombres no puede comenzar con la palabra btn, en este caso lo asigné el nombre cmdCargar.

2. El código se simplifica utilizando una variable, retiré el formato de letra y los colores.

Este es el código del botón cmdCargar

Private Sub cmdCargar_Click()
 Dim ctl As Control
 Dim x As Integer
 Dim aux As String
For Each ctl In Controls
     With ctl
         If .ControlType = acCommandButton Then
            aux = Mid(.Name, 1, 3)
            If aux = "btn" Then
               x = x + 1
               aux = aux & Format(x, "00")
               .Caption = DLookup("[btn_titulo]", "tblbotones", "btn_nombre='" & aux & "'")
            End If
        End If
    End With
 Next
End Sub

Mucho más técnico y rápido. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas