¿Como logro que un boton en access al hacer click me cambie de color y a la vez el texto repetidas veces?

He leído varias respuestas muy interesantes de tu parte, me podrías orientar como hacer para que un botón cambie de color y a la ves de texto pero repetidas veces, hasta ahora solo lo he podido hacer que lo haga una sola vez, pero al volver hacer click no hace nada mas!

Private Sub CommandButton_Click()
CommandButton.BackColor = vbYellow
CommandButton.Caption = "Libre"
End Sub

3 Respuestas

Respuesta
4

¡ Que atrevida es la ignorancia! Lo que te dice Sveinborj es lo más correcto. Si tienes un formulario

Y haces clic en el botón Comando8, te quedará

y si vuelves a hacer clic

Gracias, no sabes como hacer para que el botón quede en por ejemplo "libre" a la hora de cerrar y abrir el formulario?

En el evento Al cargar o al abrir de las propiedades del formulario puedes poner

CommandButton.Caption = "Libre"

En cuanto a lo de al cerrar, anularía el botón de cerrar(X) del formulario y pondría un botón de comando y en el evento Al hacer clic pondría

CommandButton.Caption = "Libre"

Docmd. Close

Respuesta
3

Supongamos que quieres alternar entre 3 colores (amarillo, rojo y verde) y 3 textos (libre, ocupado, reservado), y los cambios son de amarillo a rojo, de rojo a verde y de verde a amarillo Puedes hacerlo así:

Private Sub CommandButton_Click()
Select Case CommandButton.BackColor
  Case vbGreen
    CommandButton.BackColor = vbYellow
    CommandButton.Caption = "Libre"
  Case vbYellow
    CommandButton.BackColor = vbRed
    CommandButton.Caption = "Ocupado"
  Case vbRed
    CommandButton.BackColor = vbGreen
    CommandButton.Caption = "Disponible"
End Select
End Sub

Para más cambios añade más Cases.

Un saludo.


Muchas gracias!!! Ya ingrese el codigo, pero el botón no hace nada al hacer click ¿Porque será?

Probablemente no te funcione porque el color de tu botón, inicialmente, no es ni verde, ni rojo ni amarillo.

Si es así, tienes dos opciones: o le pones uno de esos colores en el diseño del botón. O bien el último case lo cambias de "Case vbRed" a "Case Else".

¡Gracias! Ya funciono!! ya tenía 3 días buscado tutoriales, me has ayudado mucho en verdad.

Hola, Sveinbjorn disculpa que te moleste nuevamente, pero como puedo hacer que el botón se quede de un color a la hora de cerrar el formulario y que al abrirlo continué de en ese estado, ya que me sucede por ejemplo: Lo dejo en "Disponible" pero al cerrar y luego abrir el formulario aparece en "Libre"

Para que te quede fijo en el color seleccionado, has de cerrar el formulario, abrirlo en vista diseño, hacer los cambios y cerrarlo guardando dichos cambios.

Para hacerlo por código, como te menciona Icue, necesitas un botón propio para cerrar el formulario (no sirven los eventos propios del formulario), y a ese botón le pones este código:

GuardaCambioBoton CommandButton. BackColor, CommandButton. Caption

Además, en el módulo del formulario, añades al final este otro código, cmabiando "Formulario3" por el nombre de tu formulario:

Private Sub guardaCambioBoton(elColor As Long, elTexto As String)
DoCmd. Close acForm, Me. Name
DoCmd. OpenForm "Formulario3", acDesign,,,, acHidden
Forms("Formulario3").CommandButton.BackColor = elColor
Forms("Formulario3").CommandButton.Caption = elTexto
DoCmd.Close acForm, "Formulario3", acSaveYes
End Sub

Y listo, el formulario se te abrirá con el color y texto que tenían al cerrarlo.

¡Gracias! Por la ayuda

Buenas Noches, Disculpa la ignorancia pero ¿Cual es el módulo del formulario?

Donde has escrito el otro código

Lo que he hecho es crear el botón que me mencionas para cerrar el formulario y que me guarde el estado del botón que va a estar cambiando de color. Pero no me cierra el formulario, Oh...el botón lo creo con el asistente de comandos y selecciono cerrar formulario y luego meto el código?

GuardaCambioBoton CommandButton. BackColor, CommandButton. Caption

Y el botón no debe llevar un nombre en especifico?

El botón debe llamarse "guardaCambioBoton"?

El botón da lo mismo como lo llames.

GuardaCambioBoton es el nombre del procedimiento que se encarga de mantener el color y etiqueta del botón llamado CommandButton.

El botón nuevo no tiene que cerrar el formulario, de eso ya se encarga el procedimiento guardaCambioBoton

Hola de nuevo, recapitulando todo lo que me has mencionado, me surgen unas dudas el botón que me cerrará este formulario me guardará los cambios de todos los botones o solo de el llamado "CommandButton"? porque lo que intento hacer es que al abrir ese formulario todo este tal cual se dejó cuando se cerró, porque ahorita lo cierro y todos los botones aparecen en "Disponible" al abrirlo nuevamente.

Gracias por la ayuda!!

Obviamente, el nuevo botón solo te conservará el color y texto del botón llamado "CommandButton".

Si quieres que te los guarde todos, has de repetir la línea de código una vez por cada botón, cmabiando el "CommandButton" por el nombre correspondiente.

Respuesta
1

No hace nada porque siempre te va a quedar el mismo color de fondo y la sentencia case no se está ejecutando sino una vez. Ya te preparé un ejemplo más complejo.

Efectivamente estoy equivocado la respuesta de Sveinbjorn es correcta, no había analizado bien el código, disculpa la "ignorancia", pero no es la forma de referirse a un colega como lo hace Icue. González, hay otra forma y generar los colores al azar, tal vez, el sabio te pueda responder.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas