Cambiar de estado un botón

Necesito hacer en un formulario un botón que al hacer clic me cambie de estado:
Primero: que diga SIN HACER (de color rojo)
Segundo: que diga A MEDIO HACER (de color amarillo)
Tercero: que diga HECHO (de color verde)
Y que el formulario "se acuerde" de lo que elgí.
No sé si me explico bien, que el mismo botón valla cambiando de estado a medida que lo voy presionando con el click del mouse.

Hice dos preguntas en un día, es que soy medio novata en Access.

2 respuestas

Respuesta
2

Analía: Para que recuerde el Estado, pero solo durante la sesión debes declarar una variable Publica en un Módulo Estándar. Ejemplo >>

Public NPulsaciones As Byte

Después y en el Evento Al Cargar (Form_Load) del Formulario donde tienes el Botón has de poner.

NPulsaciones = 0

Y por último, en el Evento Click del Botón que voy a suponer que se llama >> BtnEstado, pones éste código.

Private Sub BtnEstado_Click()
NPulsaciones = NPulsaciones + 1
If NPulsaciones = 4 Then NPulsaciones = 1
Select Case NPulsaciones
        Case 1
                Me.BtnEstado.Caption = "SIN HACER"
                Me.BtnEstado.ForeColor = RGB(255, 0, 0)
        Case 2
                Me.BtnEstado.Caption = "A MEDIO HACER"
                Me.BtnEstado.ForeColor = RGB(255, 255, 0)
        Case 3
                Me.BtnEstado.Caption = "HECHO"
                Me.BtnEstado.ForeColor = RGB(0, 255, 0)
        Case Else
                MsgBox "Si salta éste mensaje es que hay un error en el Proceso", vbCritical, "ERROR GRAVE"
End Select
End Sub

Mis saludos >> Jacinto

Respuesta
2

Te digo lo que haría. Un botón de comando no es más que una etiqueta en relieve y con un poco más de eventos.

En la tabla crearía un campo Estado(para que "recuerde"), y en el formulario( ver imagen) crearía tres etiquetas del mismo tamaño, cada una con su color y las llamaría SH( por sin hacer), MH y H.

La MH y H en sus propiedades las pondría como visible=No

En las propiedades de la etiqueta SH, en el evento, al hacer clic pondría

Estado = "Sin hacer"
MH.Visible = True
SH.Visible = False

En las propiedades de la etiqueta MH mismo evento pondría

Estado = "Medio hecho"
H.Visible = True
MH.Visible = False

y en las propiedades de la etiqueta H, mismo evento pondría

Estado = "Hecho"
SH.Visible = True
H.Visible = False

Luego pondría las etiquetas una encima de otra. Ver imagen

Y por último, en las propiedades del formulario, en el evento Al activar registro(para que reccuerde)

If IsNull([Estado]) Then
SH.Visible = True
MH.Visible = False
H.Visible = False
ElseIf Estado = "Sin hacer" Then
SH.Visible = True
MH.Visible = False
H.Visible = False
ElseIf Estado = "Medio hecho" Then
SH.Visible = False
MH.Visible = True
H.Visible = False
ElseIf Estado = "Hecho" Then
SH.Visible = False
MH.Visible = False
H.Visible = True
End If

Entonces cuando te fueras a un registro nuevo lo verías así

y en cuanto pulsaras, SIN Hacer te quedaría

Porque hasta que no decidas que está a medio hacer todavía esta sin hacer. Y si te desplazaras por registros, al volver a este, como todavía está sin hacer te mostraría el cuadro rojo.

Parece liado pero es sencillo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas